隨筆-57  評論-129  文章-0  trackbacks-0
          我一直都想搞一個XML的模板引擎,大凡非xml的模板風(fēng)格,第一感覺就是那么的不爽。
          可是CommonTemplate例外。

          CommonTemplate處處為程序員考慮周到的漂亮的語法風(fēng)格,確實非常誘人。
          具體的語法我就不一一列舉了,大家可以到他的官方網(wǎng)站去翻閱。

          挑幾個亮點介紹一下:
          1. for循環(huán)的空處理,相信曾經(jīng)麻煩了不少程序員吧。

            現(xiàn)在好了,CT支持如下語法:
               $for{}
               <tr>
                  <td>1</td>
                  <td>2</td>
                  <td>3</td>
               </tr>
               $forelse
               <tr>
                  <td colspan="3">沒有數(shù)據(jù)</td>
               </tr>
               $end

          2. 大膽的關(guān)鍵字利用。


            <html>
                
            <body>
                    $if{users != null && users.size > 0}
                    
            <table border="1">
                        $for{user : users}
                        
            <tr>
                            
            <td>${for.index + 1}</td>
                            
            <td>${user.name}</td>
                            
            <td>${user.coins}</td>
                        
            </tr>
                        $end
                    
            </table>
                    $end
                
            </body>
            </html>


            大家看這段代碼。一般來說,for這種常用關(guān)鍵字是不好用作id的,但是這里作為默認的循環(huán)狀態(tài)對象的id。既解決了塊對象存放的問題,又不會引起其他命名的沖突。一個字,妙!!!!

          3. 其他漂亮的特征:


            注釋版語法外套,方便于測試數(shù)據(jù)填充及可視化編輯。
            單一的語法規(guī)則,方便解析與擴展。

            等等。。。。


          好了,贊嘆之余還是給出一點點遺憾:

          boolean 運算有點丑陋。
          我個人更期望 js的boolean運算風(fēng)格,沒有必要一碰到boolean 運算就返回true ? false
          我們完全可以返回一個更有意義的值,比如,我更期望這個語句能如我所愿的執(zhí)行。
           
          ${ variable|| "默認值"}

          當(dāng)能,如上支持,CT是有的,它的寫法是
           
          ${ variable | "默認值"}

          但是,我感覺,這個語法就有點復(fù)雜了,也不那么直觀。
          一般來說| 是按位取或,是位運算符,這里這個用法,跳躍的確實有點大,較難接受的。
          posted on 2007-11-29 21:28 金大為 閱讀(1446) 評論(5)  編輯  收藏 所屬分類: Java

          評論:
          # re: 挺一個中國程序員開發(fā)的漂亮的模板引擎:CommonTemplate 2007-11-30 08:48 | dennis
          ${ variable | "默認值"}

          你把他理解成正則不就完了,呵呵  回復(fù)  更多評論
            
          # re: 挺一個中國程序員開發(fā)的漂亮的模板引擎:CommonTemplate 2007-11-30 08:57 | 小獻
          不錯,挺適用的  回復(fù)  更多評論
            
          # re: 挺一個中國程序員開發(fā)的漂亮的模板引擎:CommonTemplate 2007-11-30 09:50 | 金大為
          @dennis
          也是,呵呵  回復(fù)  更多評論
            
          # re: 挺一個中國程序員開發(fā)的漂亮的模板引擎:CommonTemplate 2007-12-04 10:29 | 梁飛
          謝謝金兄的建議,已按照JS的風(fēng)格改寫了||運算符
          since: 0.7.5  回復(fù)  更多評論
            
          # re: 挺一個中國程序員開發(fā)的漂亮的模板引擎:CommonTemplate 2008-01-16 18:15 | 大衛(wèi)
          不知道有沒有太多的bug :)  回復(fù)  更多評論
            
          主站蜘蛛池模板: 绥芬河市| 桐城市| 河间市| 鄄城县| 成安县| 精河县| 天长市| 嘉义市| 五寨县| 永福县| 永德县| 越西县| 永修县| 安岳县| 广平县| 宕昌县| 卓尼县| 盐津县| 台山市| 华坪县| 汤阴县| 宜昌市| 呼和浩特市| 民权县| 长子县| 宣化县| 五华县| 肥东县| 聂拉木县| 会理县| 兴隆县| 绥江县| 镶黄旗| 甘洛县| 泊头市| 宜春市| 新龙县| 徐水县| 香河县| 海林市| 仁化县|