参考 :https://stackoverflow.com/questions/10529963/what-is-the-best-way-to-create-jsp-layout-template
在开发前端网页过程中,网站一般都有一个模板页,用来保存整个网站最基本的风格,而其它网页都在这个风格上进行修改。在JSP中可通过tag来实现此项功能。
在WEB-INF/tags/目录下新建一个base.tag的模板页面用来保存新创建的模板:
<%@tag description="Overall Page template" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@attribute name="num" rtexprvalue="false" required="true" %> <%@attribute name="header" fragment="true" required="true"%> <%@attribute name="footer" fragment="true" required="true"%> <html> <body> <div id="header"> <jsp:invoke fragment="header"/> </div> <div id="body"> <jsp:doBody/> <p>${num}</p> <p><c:out value="${num}"/></p> </div> <div id="footer"> <jsp:invoke fragment="footer"/> </div> </body> </html>
在这个模板中我们定义了两个可替换的部分:header,footer;一个变量num。
子页面使用这个标签方式如下:
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %> <t:base num="abc"> <jsp:attribute name="header"> <title>Welcome</title> <h1>Welcome</h1> </jsp:attribute> <jsp:attribute name="footer"> <p id="copyright">Copyright 2016, Inc.</p> </jsp:attribute> <jsp:body> <h2>Howdy, <s:property value="username" />...!</h2> </jsp:body> </t:base>