liferay中的Velocity使用分析(1)
阿新 • • 發佈:2019-02-12
liferay中使用Velocity進行themes設定,下面來分析一下它的應用過程
1.我們先看看VelocityVariables.java這個類,它定義了4個方法
public static void insertHelperUtilities(VelocityContext vc, String[] restrictedVariables)({...}
這個方法主要在Journal中使用,主要是將一些util的變數加入至Velocity中
public static void insertVariables(
VelocityContext vc, HttpServletRequest req) {...}
此方法使用的最多,用來定義所有變數,分別在VelocityFilter.java,RuntimePortletUtil.java和 ThemeUtil.java中使用
private static void _insertHelperUtility(
VelocityContext vc, String[] restrictedVariables, String key,
Object value) {...}
在insertHelperUtilities方法中使用的內部方法
private static String _insertTilesVariables(
VelocityContext vc, HttpServletRequest req, String attributeId,
String attributeName) {...}
在insertVariables方法中使用的內部方法,定義Tiles attributes變數的方法
2.再來看看webapps/ROOT/html/themes/_unstyled/templates/init.vm檔案
#set ($theme_display = $themeDisplay)
#set ($portlet_display = $portletDisplay)
......
定義變數,分別將VelocityVariables中定義的變數值取出供其他vm檔案使用
1.我們先看看VelocityVariables.java這個類,它定義了4個方法
public static void insertHelperUtilities(VelocityContext vc, String[] restrictedVariables)({...}
這個方法主要在Journal中使用,主要是將一些util的變數加入至Velocity中
public static void insertVariables(
VelocityContext vc, HttpServletRequest req) {...}
此方法使用的最多,用來定義所有變數,分別在VelocityFilter.java,RuntimePortletUtil.java和 ThemeUtil.java中使用
private static void _insertHelperUtility(
VelocityContext vc, String[] restrictedVariables, String key,
Object value) {...}
在insertHelperUtilities方法中使用的內部方法
private static String _insertTilesVariables(
VelocityContext vc, HttpServletRequest req, String attributeId,
String attributeName) {...}
在insertVariables方法中使用的內部方法,定義Tiles attributes變數的方法
2.再來看看webapps/ROOT/html/themes/_unstyled/templates/init.vm檔案
#set ($theme_display = $themeDisplay)
#set ($portlet_display = $portletDisplay)
......
定義變數,分別將VelocityVariables中定義的變數值取出供其他vm檔案使用