JSP中的内容布局

 

参考 :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>  

 

posted @ 2017-12-18 19:52  ldp.im  阅读(1310)  评论(0编辑  收藏  举报