springMVC和tiles的整合

在SpringMVC中使用Tiles还是很方便的,这里做一个简单的DEMO。
首先需要在项目的类库中添加相关的jar文件,这里使用的是Maven管理,因此,只需要添加pom即可.

 代码如下复制代码

<!-- Tiles -->
<dependency>
    <groupId>commons-digester</groupId>
    <artifactId>commons-digester</artifactId>
    <version>2.1</version>
</dependency>
<dependency>
    <groupId>org.apache.tiles</groupId>
    <artifactId>tiles-core</artifactId>
    <version>3.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.tiles</groupId>
    <artifactId>tiles-api</artifactId>
    <version>3.0.1</version>
</dependency>
<dependency>
    <groupId>org.apache.tiles</groupId>
    <artifactId>tiles-jsp</artifactId>
    <version>3.0.1</version>
</dependency>

添加完依赖的jar包之后,接下来需要配置SpringMVC使用Tiles的视图解析,这里使用的是Tiles3 ,因此需要Spring版本在3.2之上,低版本的只支持到Tiles2.

 代码如下复制代码

<!-- 视图解析-->

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles/general.xml</value>
        </list>
    </property>
</bean>
<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>
<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
    <property name="order" value="2" />
</bean>

这里配置了两个视图解析bean,当Tiles配置中没有匹配的规则时,使用SpringMVC默认的匹配规则。

 代码如下复制代码

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN" "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">
<tiles-definitions>      
    <!-- 前端页面模板 -->
    <definition name="template_page" template="/WEB-INF/templates/page.jsp"></definition>
    <definition name="template_base" template="/WEB-INF/templates/base.jsp"></definition>
    
    <!-- 引用整体模板  视图名 + .page  -->
    <definition name="*.page" extends="template_page" >
        <put-attribute name="body" value="/WEB-INF/views/{1}.jsp" />
    </definition>
    <definition name="*/*.page" extends="template_page">
        <put-attribute name="body" value="/WEB-INF/views/{1}/{2}.jsp" />
    </definition>
    <definition name="*/*/*.page" extends="template_page">
        <put-attribute name="body" value="/WEB-INF/views/{1}/{2}/{3}.jsp" />
    </definition>
    <definition name="*/*/*/*.page" extends="template_page">
        <put-attribute name="body" value="/WEB-INF/views/{1}/{2}/{3}/{4}.jsp" />
    </definition>
    
    <!-- 引用基本模板   视图名 + .base -->
    <definition name="*.base" extends="template_base" >
        <put-attribute name="body" value="/WEB-INF/views/{1}.jsp" />
    </definition>
    <definition name="*/*.base" extends="template_base">
        <put-attribute name="body" value="/WEB-INF/views/{1}/{2}.jsp" />
    </definition>
    <definition name="*/*/*.base" extends="template_base">
        <put-attribute name="body" value="/WEB-INF/views/{1}/{2}/{3}.jsp" />
    </definition>
    <definition name="*/*/*/*.base" extends="template_base">
        <put-attribute name="body" value="/WEB-INF/views/{1}/{2}/{3}/{4}.jsp" />
    </definition>
</tiles-definitions>

上面的Tiles配置文件中,配置了两个页面的模板,当Spring返回视图名为.page或者是.base后缀时,就会匹配到相应的模板。从这里可以看到,Tiles支持通配符匹配的,当然,你也可以使用正则表达式进行规则的匹配或者是Mvel等语言进行规则匹配。
在模板文件中,使用tiles的标签完成模板的创建。
如page.

 代码如下复制代码

<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<html>
<head>
...
</head>
<body>
    <tiles:insertAttribute name="body" />
</body>
</html>

最后,在控制器中,只需要返回的视图名为.page就会自动的使用该模板了。

 代码如下复制代码
@RequestMapping("login")
public String login(HttpServletRequest req, HttpServletResponse resp, HttpSession session){
    return "login.page";
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值