1. 程式人生 > >liferay中的Velocity使用分析(1)

liferay中的Velocity使用分析(1)

    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檔案使用