你還在使用 Java 服務(wù)器頁面(俗稱JSP)嗎瑟幕?我曾經(jīng)也是承匣,但是幾年前我拋棄了它們,并且再也沒有用過JSP了稠屠。JSP 是個很好的概念峦睡,但是它卻剝奪了 web 開發(fā)的樂趣。 對我而言权埠,這些都是小事榨了,比如無法在頁面模板上使用單獨的文件header.jsp 和 footer.jsp,不能調(diào)用表達式語言的方法攘蔽,在運行時無法合并龙屉,重新排列頁面的各個部分。所以我轉(zhuǎn)而使用 FreeMarker 模板满俗。FreeMarker 已經(jīng)存在一段時間了叔扼,如果你最近沒有關(guān)注過 FreeMarker 的話,那這有些建議給你漫雷,讓你考慮下個 web 應(yīng)用使用 FreeMarker。
1鳍咱、類加載沒有 PermGen 問題
如果你已經(jīng)開發(fā)Java Web應(yīng)用程序一段時間降盹,那么對于 JVM 的 PermGen 問題可能并不陌生。由于 FreeMarker 模板不編譯成類谤辜,它們不占用 PermGen 空間蓄坏,并不需要一個新的類加載器加載。
2丑念、模板加載器
直接從數(shù)據(jù)源加載頁面和模板豈不是很好涡戳?也許從 CMS 或數(shù)據(jù)庫。也許你只想把它們放在一個地方脯倚,可以不重新部署整個應(yīng)用程序就能更新它們渔彰。那么在 JSP 中你是很難做到這一點的嵌屎,但 FreeMarker 提供的模板加載器就是為了 這個目的恍涂。你可以使用內(nèi)建類或者創(chuàng)建你自己的實現(xiàn)。
4尼夺、沒有導入
JSP 要求你導入每個你需要使用的類,就像一個常規(guī)的 Java 類一樣炒瘸。FreeMarker 模板,嗯顷扩,僅僅是模板∈杭矗可以被包括在另一個模板中庙睡,但目前還不需要導入類技俐。
5乘陪、支持 JSP 標簽
使用 Jsp 的一個理由是有可用性很好的標簽庫。好消息是 FreeMarker 支持 JSP 標簽雕擂。壞消息是它們使用 FreeMarker 的語法啡邑,不是 JSP 語法。
6井赌、表達式語言中的方法調(diào)用
除非你的目標是 Servlet 3.0/El 2.2 標準的容器谤逼,那么表達式語言中方法調(diào)用是不可用的。不是所有人都同意 EL 表達式中方法調(diào)用是一件好事仇穗,但是當你需要它們的時候流部,使用 JSP 真的太痛苦了。 但是 FreeMarker 同等對待其中每個引用纹坐。
原文鏈接: stackhunter 翻譯: ImportNew.com - 光光頭去打醬油