假设我们想为应用中的所有页面定义一个通用的头部和底部。最原始的方式就是查找每个JSP模板,并为其添加头部和底部的HTML。但是这种方法的扩展性并不好,也难以维护。更好的方式是使用布局引擎,如Apache Tiles,定义适用于所有页面的通用页面布局。Spring MVC以视图解析器的形式为Apache Tiles提供了支持。
配置Tiles视图解析器
首先引入依赖:
1 | <dependency> |
配置:
1 | <!-- 指定tiles.xml --> |
tiles.xml见下文。
tiles.xml
1 |
|
每个
header.jsp:
1 | <%@ page language="java" contentType="text/html; charset=utf-8" |
footer.jsp:
1 | <%@ page language="java" contentType="text/html; charset=utf-8" |
page.jsp:
1 | <%@ page language="java" contentType="text/html; charset=utf-8" |
名为index和register的Tile各自都继承了base Tile,还定义了body,分别引用index.jsp和register.jsp:
index.jsp:
1 | <%@ page language="java" contentType="text/html; charset=utf-8" |
register.jsp:
1 | <%@ page language="java" contentType="text/html; charset=utf-8" |
测试
访问http://localhost:8080/spring/index/:
访问http://localhost:8080/spring/registerindex/
可以看到,头部和尾部是固定的,变的只是body部分。