我是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 /目录中)。
我很乐意帮助我了解最好的方法。
编辑:我需要的是将页面的布局拆分为诸如内容,标题等部分,并在使用布局模板的页面中设置此部分,就像asp.net主页一样。
将以下内容放在WEB-INF / tags / 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)在此链接上做出的一个很好的回答的一部分。