JSP中的内容布局

 

参考 :https://stackoverflow.com/questions/10529963/what-is-the-best-way-to-create-jsp-layout-template

在开发前端网页过程中,网站一般都有一个模板页,用来保存整个网站最基本的风格,而其它网页都在这个风格上进行修改。在JSP中可通过tag来实现此项功能。

在WEB-INF/tags/目录下新建一个base.tag的模板页面用来保存新创建的模板:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@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。

子页面使用这个标签方式如下:

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@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 @   ldp.im  阅读(1316)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示