<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    如何在Velocity模版中使用static類

    Posted on 2007-05-17 14:52 bluoy 閱讀(2450) 評論(0)  編輯  收藏
    開發要求:
    為了便于維護,頁面端js中的錯誤信息要求不能硬編碼,要根據java端定義的Message對應的常量Key動態獲得。

    按照velocity常規做法,無法用VTL語言使用static類。調查了一下,原來velocity還是提供了變通了的實現方案的,官方論壇上還有就這一問題的爭論--“Add Support for Static Utility Classes”。

     
    基本上集中于兩種思路:static class wrapper 和 put class into context。
    前者就是作一個static class 的托管類,將托管類的實例放到context中。
    1.3.1版中對應實現為org.apache.velocity.app.FieldMethodizer。
    后者的想法是先把static類的Class放到context中,然后模版引擎在碰到Class對象時,優先在java.lang.Class中尋找對應的調用,然后再查找static class的調用。個人感覺這種思路比較好,用戶使用比較簡單直接,不需要額外的wrapper類。但官方好像更鐘情于前者。計劃在未來的1.6版中提供支持。

    附帶遇到的其他限制:
    1. velocity 1.3.1版不能正常處理jdk1.5中的可變參數(Varargs) 特性。可變參數(Varargs) 其實使用對應類型的數組來實現的。velocity會因為匹配不到對應的函數原型而調用失敗。其他版本未作驗證。
    2. velocity 1.3.1版不能正常處理jdk1.5中的enum特性。因為enum其實是按類來對待的。而velocity內部對類的處理是“取得所有的public的Methods”。所以類內部定義的enum類型的常量無法取到。這個處理請參見:org.apache.velocity.util.introspection.ClassMap。
    3. velocity只能調用類/對象的methods, 無法直接使用public的attributs。原因如2。同時可以參照
    Access to public member variable of a class


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲中文无码线在线观看| 国产免费爽爽视频免费可以看| 亚洲精品成人片在线观看| 亚洲精品无码久久久久YW| 野花高清在线观看免费3中文 | 97人伦色伦成人免费视频 | 亚洲国产精品自在线一区二区 | 亚洲精品成人无码中文毛片不卡| jizz在线免费观看| 亚洲精品无码av天堂| 国产乱妇高清无乱码免费| 国产亚洲精品xxx| 日本免费大黄在线观看| 亚洲人成网网址在线看| A级毛片内射免费视频| 18禁亚洲深夜福利人口| 亚洲一级片免费看| 国产免费无码AV片在线观看不卡| 亚洲精品国产啊女成拍色拍| 性色av无码免费一区二区三区| 亚洲国产成人精品无码区花野真一 | 亚洲色偷精品一区二区三区| 国产无遮挡吃胸膜奶免费看| 青青草国产免费国产是公开| 亚洲av无码国产精品色午夜字幕| 91精品国产免费入口| 亚洲中文无码永久免费| 亚洲高清无码在线观看| 无码一区二区三区免费| 一区二区亚洲精品精华液| 亚洲精品高清一二区久久| 久久99热精品免费观看动漫| 日本亚洲免费无线码| 亚洲一级片免费看| 9久9久女女免费精品视频在线观看| 国产av无码专区亚洲av毛片搜| 亚洲AV无码成人精品区天堂| 四虎www免费人成| 精品国产一区二区三区免费| 亚洲日韩中文字幕一区| 国产精品亚洲一区二区三区在线 |