2012-05-10 27 views
28

thể trùng lặp:
JSP tricks to make templating easier?Cách tốt nhất để tạo mẫu bố cục JSP là gì?

Tôi mới đến JSP và servlet, tôi đang tự hỏi là có một cách gọn gàng để tạo ra một jsp bố trí và tái sử dụng nó trên các trang jsp tương tự , một cái gì đó giống như trang chủ asp.net.

Tôi đã googled nó, một số người nói sử dụng các mẫu http://java.sun.com/developer/technicalArticles/javaserverpages/jsp_templates sử dụng thư viện thẻ jstl. Nó nói để đặt một thẻ như thế này:

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

nhưng tôi gặp lỗi (vì jstl.jar và standard.jar nằm trong thư mục WEB-INF/lib /).

Tuy nhiên một số người nói JSTL mẫu có vấn đề theo này Struts OR Tiles OR ???...... JSP template solution

tôi sẽ được vui để giúp tôi biết cách tốt nhất.

EDIT: Những gì tôi cần là phân chia bố cục của trang thành các phần như nội dung, tiêu đề, ... và đặt các phần này trong trang sử dụng mẫu bố cục, chính xác như trang cái asp.net.

+1

giải pháp có thể có http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier http://www.javaworld.com/javaworld/jw-09-2000/jw-0915 -jspweb.html Tôi không biết cách nào tốt nhất – shareef

+0

cảm ơn tôi nghĩ rằng liên kết đầu tiên là tuyệt vời http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier – Ashkan

Trả lời

74

Đặt sau trong WEB-INF/thẻ/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> 

Để sử dụng này:

<%@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> 

Đó thực hiện chính xác những gì bạn nghĩ nó!

Đây là một phần của câu trả lời tuyệt vời của Will Hartung trên this link.

Các vấn đề liên quan