第二重罪我體會(huì )不深,不過(guò)必須用String來(lái)做Key的似乎的確很讓人頭痛。
第三重,我用webwork和Freemarker的整合方式,沒(méi)仔細研究里面的東東。
我一直在用freemarker,特別是它的macro真是太強大了,已大大減少了我的頁(yè)面開(kāi)發(fā)和維護的工作量
我也是在改既有的項目的時(shí)候發(fā)現幾分問(wèn)題向robbin請教的。
的確,從2.1.X,WW就不建議寫(xiě)freemarkerServlet了,可是去掉他又是如何一個(gè)大工程!
為什么是大工程,要怪,我想肯定的怪freemarker擁有一個(gè)不可以擁有的特性,就是和session的互操作。造成我們這里很多開(kāi)發(fā)人員隨意把它當作jsp來(lái)用。
如果說(shuō)到一個(gè)框架還需要人們去去粗取精的話(huà),那他怎么會(huì )被廣泛使用?
Freemarker 最大的好處是對 xml 的轉換,比 xslt 好用多了。
個(gè)人認為FreeMarker是當前最好的用來(lái)渲染view的模板叻,希望robbin不要淺嘗輒止啊,這么好的東西,輕易丟棄就太可惜叻。就好像小時(shí)候我們學(xué)騎自行車(chē)一樣,你說(shuō)好好的自行車(chē)四個(gè)輪子多好,為啥只有兩個(gè)輪子,那么容易就摔倒呢??墒菍W(xué)會(huì )之后,這輩子都會(huì )騎,都覺(jué)得兩個(gè)輪子的自行車(chē)的確比四個(gè)輪子的好。
一宗罪,null值處理:
這個(gè)也的確讓我煩叻一陣子,不過(guò)后來(lái)不僅習慣叻,而且還真的喜歡上這一點(diǎn)叻。我們的頁(yè)面上有null值,大概有這樣兩種情況:
1、這個(gè)值本來(lái)就是可有可無(wú)的。比如表單域的value=""值。這種情況,可以用${foo?default("")}來(lái)寫(xiě),并不十分復雜,而且可以讓你狠方便地定義默認值,比如N/A什么的。
2、Action層處理有錯,導致null值。這種情況下,FreeMarker就給程序調試提供的有力的保障,也是FreeMarker對null值如此敏感的初衷。從我學(xué)FreeMarker開(kāi)始,我就強烈地感受到FreeMarker在試圖把自己做成模板語(yǔ)言中的強類(lèi)型語(yǔ)言。
聯(lián)系客服