您的位置:首页 > 编程语言 > Java开发

tiles3 基础使用及与spring mvc集成

2015-12-11 00:00 429 查看
1.简介
Tiles 是一种JSP布局框架,主要目的是为了将复杂的jsp页面作为一个的页面的部分机能,
然后用来组合成一个最终表示用页面用的,这样的话,增加代码重用率的同时,便于对页面的
各个机能的变更及维护。
2.tiles与spring mvc的集成
web.xml
<!--spring mvc的配置-->
<servlet>
<description>Spring MVC</description>
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/*配置文件路径*/</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>*.html/*过滤路径*/</url-pattern>
</servlet-mapping>
mvc.xml
<bean id="viewResolver"
class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<!--如果使用了其他的视图解析 该属性用于定义解析顺序-->
<property name="order" value="1" />
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView">
</property>
</bean>
<!--加载tiles配置文件 -->
<bean id="tilesConfigurer"
class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<!--配置文件路径-->
<value>classpath:tiles/tiles.xml</value>
</list>
</property>
<!--根据tiles中的definiton 名称定义bean -->
<property name="preparerFactoryClass"
value="org.springframework.web.servlet.view.tiles3.SpringBeanPreparerFactory"/>
</bean>
</bean>
tiles.xml
<tiles-definitions>
<!--定义一个公共的布局模板模板-->
<definition name="layout" template="/layout.jsp">
<put-attribute name="header" value="/header.jsp" />
<put-attribute name="body" value="/body.jsp" />
<put-attribute name="footer" value="/footer.jsp" />
</definition>
<!-- 相同布局,展示body不同-->
<definition name="tiles.layout.extend" extends="layout">
<put-attribute name="body" value="/extend/body.jsp" />
</definition>
<!--使用级联-->
<definition name="tiles.layout.extend.body" template="/body.jsp">
<put-attribute name="model" value="/model.jsp" />
</definition>
<definition name="tiles.layout.extend" template="/body.jsp">
<put-attribute name="model" value="tiles.layout.extend.body" />
</definition>
<!--级联的另一种写法-->
<definition name="tiles.layout.extend" template="/body.jsp">
<put-attribute name="model">
<definition template="/model.jsp">
</definition>
</put-attribute>
</definition>
<!--参数化配置 -->
<definition name="tiles.layout.*.*" extends="layout.{1}">
<put-attribute name="body" value="/jsp/{1}/{2}.jsp"/>
</definition>
<!--EL表达式-->
<definition name="tiles.layout" extends="${layout}">
<put-attribute name="body" value="/jsp/${model}.jsp"/>
</definition>
</tiles-definitions>
layout.jsp
<!--可以根据实际业务需求 定义布局-->
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<tiles:insertAttribute name="header" />
<tiles:insertAttribute name="body"/>
<tiles:insertAttribute name="footer" />
TilesController.java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TilesController {

@RequestMapping("tiles")
public String checkStu(){
/*返回值是 definition标签的name属性*/
return "tiles.layout.extend";
}
}
3.个人使用总结
tiles 能够大量的减少重复代码的书写,并且保证网站布局风格的一致性,特别是在大量页面需要添加或修改相同的东西的情况下,能够让我们很快的完成工作。使用范围主要在拥有大量相同布局或相似布局的网站。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tiles