今天想写写spring整合tile来渲染视图,同样是前段时间的代码,拿来分享一下~
大型网站中对于管理页面来说是一个很繁琐的事,tile为java开发者提供了一种便利的方式,废话不多说,上代码
首先,我引入的是tile2.2.2,以下是maven依赖
<dependency> <groupId>org.apache.tiles</groupId> <artifactId>tiles-core</artifactId> <version>2.2.2</version> </dependency><dependency>
<groupId>org.apache.tiles</groupId> <artifactId>tiles-jsp</artifactId> <version>2.2.2</version> </dependency>接下来是在spring配置文件中定义和注册tile
<bean class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions"> <list> <value>/WEB-INF/view/**/views.xml</value> </list> </property> </bean><bean class="org.springframework.web.servlet.view.tiles2.TilesViewResolver">
</bean>注意:
1.第一个要写在spring的配置文件中而不是springmvc的配置文件中,而第二个需要在springmvc的配置文件中替换掉项目中本来用到的视图解析器
2./WEB-INF/view/**/views.xml是我放置views.xml文件的位置,**为ant风格,表示view文件夹下所有子目录内的views.xml,views.xml为tile的配置文件,稍后进行讲解
下面是views.xml中的代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.2//EN" "> <tiles-definitions> <definition name="mainTemplate" template="/WEB-INF/view/register/template.jsp"> <put-attribute name="menu" value="/WEB-INF/view/register/menu.jsp" /> <put-attribute name="footer" value="/WEB-INF/view/register/footer.jsp" /> </definition><definition name="register" extends="mainTemplate"> <put-attribute name="title" value="/WEB-INF/view/register/registerTitle.jsp"/> <put-attribute name="body" value="/WEB-INF/view/register/registerT.jsp" /> </definition> </tiles-definitions>
其中mainTemplate为一个网页的基础模板,模板jsp为/WEB-INF/view/register/template.jsp,同样在稍后讲解,而register是一个注册的页面,他继承了mainTemplate的同时,又加入了两个自己的网页模块。
下面我们来看模板jsp也就是/WEB-INF/view/register/template.jsp
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri=" prefix="tiles" %> <tiles:insertAttribute name="title"></tiles:insertAttribute > <tiles:insertAttribute name="menu"></tiles:insertAttribute > <tiles:insertAttribute name="body"></tiles:insertAttribute> <tiles:insertAttribute name="footer"></tiles:insertAttribute >可以看出这个模板jsp中的四个模块都在刚刚的配置文件中定义,这个jsp主要负责把这些模块按顺序组装起来
那么要怎么访问这个register的页面呢?其实很简单,只要在springmvc的controller中最后返回”register”,tile的视图解析器就会帮你映射到这个视图模板上了~~
有什么讲解的不明白的地方,还希望各位指出~