在开发前端网页过程中,网站一般都有一个模板页,用来保存整个网站最基本的风格,而其它网页都在这个风格上进行修改。在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>
实际中我们可以定义多个部分来加入各子页面个性化的内容,如:CSS文件、JS等等。
具体方法可参考 这里