springMVC框架集成tiles模板(转)
将tiles模板集成到springMVC框架下,大概流程如下:
1.在配置文件中加入tiles支持
我的servlet配置文件名为spring-mvc.xml.具体配置如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd 6 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 7 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"> 8 9 <!-- 激活@controller模式 --> 10 <mvc:annotation-driven /> 11 <!-- 配置包扫描位置 --> 12 <context:component-scan base-package="com.test.maven.controller" /> 13 <!-- 配置视图解析器(jsp文件前缀后缀) --> 14 <bean id="viewResolver" 15 class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 16 <property name="prefix"> 17 <value>/WEB-INF/jsp/</value> 18 </property> 19 <property name="suffix"> 20 <value>.jsp</value> 21 </property> 22 </bean> 23 <!-- 配置tiles模板 --> 24 <bean id="tilesConfigurer" 25 class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> 26 <property name="definitions"> 27 <list> 28 <value>/WEB-INF/tiles/tiles-definitions.xml</value> 29 </list> 30 </property> 31 32 </bean> 33 34 </beans>
很简单,只是添加了模板配置文件路径。
2.配置tiles模板
我们需要给tiles添加一个默认的模板,将一些想要加入的模块加入进去
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE tiles-definitions PUBLIC 3 "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" 4 "http://tiles.apache.org/dtds/tiles-config_3_0.dtd"> 5 <tiles-definitions> 6 <definition name="defaultTemplate" template="/WEB-INF/tiles/classic.jsp"> 7 <put-attribute name="title" value="Hello world I'm title" /> 8 <put-attribute name="menu" value="/WEB-INF/tiles/menu.jsp"/> 9 <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" /> 10 </definition> 11 </tiles-definitions>
defaultTemplate就是默认模板的名字,template就是模板的路径
put-attribute表示加入模板的模块,value指向其路径
还可以再加入新的模板,如过想要继承某个模板,可以在definition处去掉template,添加extends(没试过)
注:在配置模板文件和调用模板时,都应该在文件头声明tiles标签库
模块文件就不赘述了,这里说一下模板文件,classic.jsp:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <title><tiles:getAsString name="title" /></title> 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9 </head> 10 <body> 11 <div class="page"> 12 <tiles:insertAttribute name="menu" /> 13 <div class="content"> 14 <tiles:insertAttribute name="body" /> 15 </div> 16 <tiles:insertAttribute name="footer" /> 17 </div> 18 </body> 19 </html>
上边的body元素是模板没有的,就是所谓的正文内容,因为一般情况下每次调用body内的元素都不一样,所以无需在模板内指定,在模板文件中指明其位置,然后在调用的时候向里边填入内容就好了。
3.调用tiles模板
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <body> 6 <tiles:insertDefinition name="defaultTemplate"> 7 <tiles:putAttribute name="body">hahahaha</tiles:putAttribute> 8 <tiles:putAttribute name="footer">hello</tiles:putAttribute> 9 </tiles:insertDefinition> 10 </body>
调用模板,首先是使用defaultTemplate模板,然后配置模板内的组件,若都使用默认,可以直接为空,如果重写了其中的组件,则会将原模板内的配置覆盖。但是如果是后加的组件,如上边的body,并没有默认的组件,则在调用时必须重写其内容。
到此,最简单的tiles配置就结束了。
原文:http://www.cnblogs.com/tobeprogramer/p/4163938.html