javascript模板引擎_Java開源模板引擎分類列表
本文關(guān)鍵詞:模板引擎,由筆耕文化傳播整理發(fā)布。
CommonTemplate是一個(gè)模板引擎,用于解釋CTL模板語言,可在多種運(yùn)行時(shí)環(huán)境下使用;其主要目標(biāo)是作為JSP,ASP.Net等的替代方案,以保證用簡單的語法,,良好的結(jié)構(gòu),不混雜業(yè)務(wù)邏輯的方式書寫頁面;也可以作為動(dòng)態(tài)文本生成工具,生成HTML、XML、Mail、Java源代碼或其它文本等。
二、CommonTemplate特性:
1.只有一個(gè)語法規(guī)則:$指令名{表達(dá)式},使用更簡單,更統(tǒng)一。
2.支持語法外套,可以在Dreamwear下正常使用WYSWYG,并且語法外套也是可擴(kuò)展的。
3.微核理念,高度可擴(kuò)展,除了核心API,其它邏輯相關(guān)處理都是外置的,包括所有指令及表達(dá)式,標(biāo)準(zhǔn)的 for, if, else 等指令,以及 + - * / 等表達(dá)式,均可被替換。
4.使用主控迭代器模式替代傳統(tǒng)的被動(dòng)訪問器模式,引擎只負(fù)責(zé)將模板解析成指令樹,其它所有處理均由擴(kuò)展指令自身完成,給擴(kuò)展指令以最大的控制權(quán)。(類似于StAX與SAX的區(qū)別)
5.對(duì)已有不可變類(String,Number,Date等),屬性擴(kuò)展,采用open class思想。(類似javascript的prototype)
6.支持宏引用及模板繼承,更有利于模板組件化。
7.內(nèi)置的國際化支持,國際化信息處理更方便。
8.多種優(yōu)化措施,性能更優(yōu):
(1) 采用針對(duì)特定語法寫的低級(jí)專有DFA解析器解析,試驗(yàn)表明比使用通用抽象的BNF語法體系解析(Java中一般用JavaCC或AntLR)要快,因?yàn)锽NF為了通用,考慮了太多因素,導(dǎo)致其效率降低,當(dāng)然,BNF在處理復(fù)雜語法(比如要解析C/C++/Java等語法時(shí))很有優(yōu)勢,但CommonTemplate的語法非常簡單且統(tǒng)一,所以使用專有的低級(jí)解析器是比較好的選擇。
(2) 解析結(jié)果被表示成一個(gè)線程安全(不變類級(jí))的指令樹,單個(gè)實(shí)例可以在多線程中任意重復(fù)使用,避免使用重復(fù)解析或克隆等性能損耗。
(3) 解析結(jié)果可以在內(nèi)存中緩存起來,以減少解析次數(shù)及IO量,并且緩存策略是可擴(kuò)展的。(已內(nèi)置實(shí)現(xiàn)了NONE, STRONG, SOFT, FIFO, LRU, MRU, OSCACHE, EHCACHE等緩存策略)
更多CommonTemplate信息
本文關(guān)鍵詞:模板引擎,由筆耕文化傳播整理發(fā)布。
本文編號(hào):210853
本文鏈接:http://sikaile.net/wenshubaike/mfmb/210853.html