2012-05-10 47 views
28

可能重複:
JSP tricks to make templating easier?什麼是創建JSP佈局模板的最佳方式?

我是新來的JSP和Servlet,我想知道是否有一個整潔的方式來創建一個佈局JSP和重用類似jsp頁面,就像asp.net母版頁面一樣。

我使用了它,有人說使用jstl標籤庫的使用模板 http://java.sun.com/developer/technicalArticles/javaserverpages/jsp_templates 。它說,把這樣的標籤:

<%@ taglib uri='/WEB-INF/tlds/template.tld' prefix='template' %> 

,但我得到的錯誤(因爲的jstl.jar和standard.jar是在WEB-INF/lib /目錄)。

然而有些人說JSTL模板根據本 Struts OR Tiles OR ???...... JSP template solution

我會很樂意幫助我知道的最好的方式有問題。

編輯:我需要的是將頁面的佈局拆分爲內容,標題等部分,並在使用佈局模板的頁面中設置此部分,完全像asp.net母版頁一樣。

+1

可能的解決方案 http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier http://www.javaworld.com/javaworld/jw-09-2000/jw-0915 -jspweb.html我不知道最好的方法 – shareef

+0

謝謝我認爲第一個鏈接是偉大的 http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier – Ashkan

回答

74

放入WEB-INF以下/標籤/ genericpage.tag

<%@tag description="Overall Page template" pageEncoding="UTF-8"%> 
<%@attribute name="header" fragment="true" %> 
<%@attribute name="footer" fragment="true" %> 
<html> 
    <body> 
    <div id="pageheader"> 
     <jsp:invoke fragment="header"/> 
    </div> 
    <div id="body"> 
     <jsp:doBody/> 
    </div> 
    <div id="pagefooter"> 
     <jsp:invoke fragment="footer"/> 
    </div> 
    </body> 
</html> 

要使用此:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %> 

<t:genericpage> 
    <jsp:attribute name="header"> 
     <h1>Welcome</h1> 
    </jsp:attribute> 
    <jsp:attribute name="footer"> 
     <p id="copyright">Copyright 1927, Future Bits When There Be Bits Inc.</p> 
    </jsp:attribute> 
    <jsp:body> 
     <p>Hi I'm the heart of the message</p> 
    </jsp:body> 
</t:genericpage> 

這不正是你想象的那樣!

這是Will Hartung在this link上的一個很好的答案的一部分。

相關問題