Apache Tiles3整合SpringMVC的例子

在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";
}
时间: 2024-10-29 10:15:50

Apache Tiles3整合SpringMVC的例子的相关文章

maven 整合springmvc spring myatis整合报错

问题描述 maven 整合springmvc spring myatis整合报错 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]] at java.util.concurrent.FutureTask.

使用Apache Tiles3.x构建界面布局

  Tiles是一个免费的开源模板Java应用程序的框架.基于复合模式简化的用户界面的构建.对于复杂的网站仍是最简单.最优雅的方式与任何MVC技术一起工作.Struts2对Tiles提供了支持,如今Tiles发展已有13个年头,成为Apache的一个独立项目,我们可以单独使用Tiles来构建用户界面布局.     Tiles项目:http://tiles.apache.org/index.html   Tiles的配置DTD定义:http://tiles.apache.org/framework

AngularJS整合Springmvc、Spring、Mybatis搭建开发环境_AngularJS

最近想学习AngularJS的使用,网上搜了一圈后,折腾了半天解决bug后,成功使用AngularJS整合Springmvc.Spring.Mybatis搭建了一个开发环境.(这里Spring使用的版本是4.0.6,Mybatis版本是3.2.5,AngularJS的版本是1.0.3) 第一步:创建一Maven项目,在pom.xml下添加需要的包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="

Apache+tomcat迁移到apache+Weblogic整合之动静分离问题?困惑两天了~

问题描述 先看看我的WEB应用是用Spring MVC 3.0.4做的,在Apache(mod_jk)+tomcat的时候完全没有问题. 1. web.xml配置,注意url-pattern,是处理所有的请求,这是一个网站的根应用项目.<servlet-name>cts-web</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class

springmvc-mybatis整合springMVC启动tomcat错误求助

问题描述 mybatis整合springMVC启动tomcat错误求助 你好在用您提供的代码mybatis和springMVC集成的时候启动tomcat报错不知什么原因以上是错误提示!还有一点不明白 mvc-dispatcher-servlet.xml是做什么的里面配置的内容有什么作用,如果方便请加qq603800857谢谢了 解决方案 这个是web.xml中的servlet-name配置成了mvc-dispatcher但是没有mvc-dispatcher-servlet.xml文件,引起的文件

重新安装apache,整合php,老是失败,大神点解。

问题描述 重新安装apache,整合php,老是失败,大神点解. 我的机子成功装过Apache+mysql+php,因为一些情况重新安装一次,apache和mysql已经清除干净的了,安装apache也没有问题,但apache整合php就不行了,apache就启动不起来了,求大神点解.我确定我配置的不错,怀疑是不是哪里还不干净所导致. 解决方案 卸载掉,然后使用appserv安装试试 解决方案二: 楼主 系统日志 报的什么错误 看日志 才能知道 存在什么问题 解决方案三: 我记得以前,我也有这个

求助ueditor整合springmvc的问题

问题描述 求助ueditor整合springmvc的问题 解决方案 执行到红色框的时候,报错:配置文件初始化失败 解决方案二: http://www.yihaomen.com/article/java/583.htm这个是参考案例 解决方案三: http://www.yihaomen.com/article/java/583.htm 解决方案四: springMVC 整合ueditorspringMVC整合dubbo问题及解决方法

编码-请教下关于springmvc简单例子出错问题

问题描述 请教下关于springmvc简单例子出错问题 警告: No mapping found for HTTP request with URI [/springmvc4/test1/helloworld] in DispatcherServlet with name 'springmvc' 运行后一直报错. 我贴下代码 各位帮我看下 web配置: <?xml version="1.0" encoding="UTF-8"?> springMVC1 i

apache+tomcat整合全过程纪录

前言,为什么要把apache+tomcat整合呢?因为tomcat负载不怎么样,所以想让apache帮忙处理静态页面,图片等,它自己处理逻辑. 第一步安装1. 安装tomcat .httpd.MySQL 这些就不说了2. apache要安装的组建# rpm -ivh apr-devel-0.9.4-24.9.i386.rpm # rpm -ivh apr-util-devel-0.9.4-21.i386.rpm # rpm -ivh pcre-devel-4.5-4.el4_5.1.i386.r