我是JSP和Servlet的新手,我想知道是否有一种简洁的方法来创建布局jsp并在类似的jsp页面上重用它,比如asp.net母版页。
我用Google搜索,有人说使用模板 http://java.sun.com/developer/technicalArticles/javaserverpages/jsp_templates 使用jstl标记库。它说要贴上这样的标签:
<%@ 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母版页完全相同。
答案 0 :(得分:84)
将以下内容放入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在this link上的一个很好的答案的一部分。