JSP的模板化

在ASP.NET裏,User control使頁面的模板化成爲一種新的設計思路,這兩天關心了一下JSP,不過好象還沒有現成的技術說法,但間接的實現也可以的,看下面的例子。

目錄結構:
/
 --/template
            --/default
            --/blue
            --/...

網頁裏:
... ...

String template = user.get("template");
template = ((template.length()==0) ? "default":template);

out.flush();
request.getRequestDispatcher("/WEB-INF/template/" + template + "/post.jsp").include(request, response);

... ...

這個用法看起來好象和包含另一個網頁差不多,JSP裏兩種重要的包含方法:

〈%@ include file="/WEB-INF/template/StatusCheck.jsp" %〉

〈jsp:include page="WEB-INF/inc/meta.jsp"〉
  〈jsp:param name="title" value="FAQ update"〉
〈/jsp:param〉
〈/jsp:include〉

但仔細分析就會發現,這種模板的方式其實是一種動態的包含。一般常用的兩種包含方法都是靜態的,多數場合是夠用了,但有一些情況就比較困難。想前面的例子,要針對不同的用戶模板包含不同的實現,靜態的包含方法就很困難了。

 

P.S. 輸入的時候感覺這裏的編輯器有點問題,把我所有的尖括號都自動轉換成了HTML代碼,即使我輸入 & lt ; & gt ; 也不行。這樣一來,那些例子就跑到背後去了。最後只好用全角了事。不僅這樣,還加了些什麼XML之類的東西。懊喪之極 :-(

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章