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

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

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

    OMG,到底在尋找什么..................
    (構(gòu)造一個(gè)完美的J2EE系統(tǒng)所需要的完整知識(shí)體系)
    posts - 198,  comments - 37,  trackbacks - 0
    轉(zhuǎn)貼地址:http://blog.csdn.net/chenyun2000/archive/2004/10/25/150612.aspx

    1、概述

    l???????? Velocity是一個(gè)簡單而且更加輕量級(jí)的工具,但是它沒有達(dá)到FreeMarker能夠做的許多任務(wù),而且它的模板語言不是很強(qiáng)大

    l???????? 我們認(rèn)為對(duì)于大多數(shù)應(yīng)用程序,FreeMarkerVelocity工作更簡單,因?yàn)椋?/span>

    ????????? 使用Velocity,你需要尋找特定工具或各種工作環(huán)境來一次次的解決典型的模板創(chuàng)作任務(wù),結(jié)果會(huì)浪費(fèi)更多時(shí)間

    ????????? 工作環(huán)境經(jīng)常意味著在Velocity模板中直接使用Java對(duì)象的方法,這違反了簡單、無編程HTML設(shè)計(jì)的觀念

    ????????? 或者將表示任務(wù)移到控制器代碼中,這違反了MVC模式

    l???????? 使用FreeMarker,可以以out-of-the-box(如何翻譯確切?)的方式實(shí)現(xiàn)Velocity所能做的

    ?

    2、特性比較清單

    下面是一個(gè)使用FreeMarker能夠?qū)崿F(xiàn),而Velocity不能實(shí)現(xiàn)的不太全面的特性清單:

    1)數(shù)字和日期支持

    l???????? 可以對(duì)任何數(shù)字類型進(jìn)行算術(shù)運(yùn)算和比較,包括精度類型

    l???????? 可以比較和顯示(格式化)日期/時(shí)間值

    2)國際化

    l???????? 根據(jù)各種內(nèi)建和定制的數(shù)字格式,格式化本地敏感的數(shù)字

    l???????? 根據(jù)各種內(nèi)建和定制的日期格式,格式化本地敏感和時(shí)區(qū)敏感的日期

    l???????? 標(biāo)識(shí)(變量名)可以包含非英語字符,如重音字符、阿拉伯字符、中文字符等

    3)循環(huán)處理

    l???????? 可以跳出循環(huán)

    l???????? 可以在循環(huán)外訪問循環(huán)體內(nèi)的控制變量

    l???????? 可以測(cè)試是否達(dá)到最后一次循環(huán)

    4)模板級(jí)別的數(shù)組處理

    l???????? 可以使用類似[i]語法的索引方式訪問數(shù)組元素

    l???????? 可以查詢數(shù)組長度

    5)宏

    l???????? 宏可以有局部變量

    l???????? 可以遞歸調(diào)用宏,同樣可以在模板的后面定義要調(diào)用的宏

    l???????? 調(diào)用宏時(shí),可以按位置或名字的方式傳遞參數(shù)

    l???????? 宏參數(shù)可以有缺省值,使得在調(diào)用時(shí)忽略參數(shù)也有效

    l???????? 調(diào)用的宏可以有嵌套的體內(nèi)容(<@myMacro>body</@myMacro>),能夠在宏被調(diào)用時(shí)進(jìn)行處理

    l???????? 宏是純變量的,可以基于表達(dá)式來執(zhí)行宏,或者作為參數(shù)傳遞給另一個(gè)宏

    6)命名空間

    l???????? 可以對(duì)變量使用多命名空間,這對(duì)創(chuàng)建宏庫很重要,因?yàn)檫@可以避免應(yīng)用程序中指定的變量和宏庫中變量的名字沖突

    7)使用內(nèi)建的函數(shù)/操作符維護(hù)Java無關(guān)的stringlistmap

    l???????? 可以將字符串轉(zhuǎn)換成大/小寫、首字符大/小寫,對(duì)HTMLXMLRTF進(jìn)行轉(zhuǎn)義處理,substringsplit、查詢字符串長度、find/replace子串等等

    l???????? 通過索引訪問list元素,獲得子list,合并list,查詢list長度,對(duì)list排序

    l???????? 通過key變量訪問map元素,檢查map是否為空,獲得key或值的list

    8)揭示模板中的錯(cuò)誤

    l???????? 當(dāng)訪問一個(gè)未定義的變量,FreeMarker不會(huì)沉默;你可以配置FreeMarker來停止render模板顯示錯(cuò)誤信息,或者跳過錯(cuò)誤部分;無論哪種,FreeMarker會(huì)記錄問題(日志)

    l???????? 在寫錯(cuò)指令名時(shí),FreeMarker會(huì)拋出異常

    9)高級(jí)render控制

    l???????? 可以使用一組標(biāo)記來封裝模板的一塊區(qū)域,以便在塊區(qū)中所有要修改的地方應(yīng)用HTMLXML轉(zhuǎn)義(或其它使用FreeMarker表達(dá)式表示的轉(zhuǎn)換)

    l???????? FreeMarker有轉(zhuǎn)換器,它們是模板的一塊區(qū)域,在render時(shí),通過轉(zhuǎn)換過濾;內(nèi)建的轉(zhuǎn)換器包括空白字符壓縮、HTMLXML轉(zhuǎn)義;你可以實(shí)現(xiàn)自己的轉(zhuǎn)換器;當(dāng)然轉(zhuǎn)換器可以嵌套

    l???????? 可以使用flush指令顯式的flush輸出

    l???????? 可以使用stop指令停止render

    10)文字

    l???????? 除了通常的字符串、數(shù)字和布爾值文字,也可以在模板中定義listmap文字

    l???????? 支持所有的Java轉(zhuǎn)義文字:\b\t\n\f\r\”\’\\,也支持\xXXXX使用UNICODE指定字符

    11)高級(jí)空白字符移除

    l???????? FreeMarker堅(jiān)持移除各行只包含不輸出FreeMarker標(biāo)記的空白字符

    l???????? 對(duì)于明顯要整修掉不需要的空白字符的指令來說,空白字符是個(gè)大問題

    12)集成其它技術(shù)

    l???????? 可以在模板中使用JSP標(biāo)記庫

    l???????? 可以直接在Python工程中使用

    13)強(qiáng)大的XML轉(zhuǎn)換能力

    l???????? 2.3版本中,FreeMarker具有強(qiáng)大的新XML轉(zhuǎn)換能力,使得替代XSLT成為可能

    l???????? Velocity在這方面是無法真正競爭的,除非改進(jìn)核心引擎,如支持宏庫映射到名字空間,宏中支持局部變量

    14)高級(jí)模板元程序

    l???????? 可以捕獲輸出的任何部分到context變量中

    l???????? 可以解釋任何context變量,如果它是一個(gè)模板定義

    l???????? 上述兩者的結(jié)合使用

    posted on 2006-04-19 17:59 OMG 閱讀(1243) 評(píng)論(0)  編輯  收藏 所屬分類: FreeMarker

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    <2006年4月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    IT風(fēng)云人物

    文檔

    朋友

    相冊(cè)

    經(jīng)典網(wǎng)站

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 三年片在线观看免费大全 | 两个人看的www免费视频中文| 亚洲国产精品无码久久久秋霞2| 131美女爱做免费毛片| 国产偷国产偷亚洲清高APP| 青青草原亚洲视频| 999国内精品永久免费视频| 久久国产乱子伦精品免费午夜| 无码欧精品亚洲日韩一区| 好男人看视频免费2019中文| 999zyz**站免费毛片| 99999久久久久久亚洲| 69天堂人成无码麻豆免费视频| 国产亚洲综合一区二区三区| 亚洲VA成无码人在线观看天堂 | 亚洲av综合avav中文| 欧美a级在线现免费观看| 一级成人毛片免费观看| 亚洲av片不卡无码久久| 亚洲日本va中文字幕久久| 成人免费毛片内射美女-百度| 亚洲精品黄色视频在线观看免费资源| 亚洲精品中文字幕无乱码| 亚洲欧洲日本在线| A级毛片内射免费视频| 免费在线看污视频| 国产午夜亚洲精品不卡电影| 亚洲国产精品久久网午夜| 亚洲性猛交XXXX| 日韩一级视频免费观看| 国产国产人免费视频成69堂| 久久久精品国产亚洲成人满18免费网站 | 三年片在线观看免费| 亚洲综合精品成人| 久久亚洲中文字幕精品一区四| 成人网站免费观看| 1000部拍拍拍18勿入免费视频下载| 精品一区二区三区免费视频 | 国产精彩免费视频| 国产精品偷伦视频观看免费| 国产99久久久久久免费看|