`

springmvc 整合apache tiles

阅读更多
   最近把springmvc3.2.0 和 apache tiles 整合了一下,并用mvn构建了web工程,下面把关键点说明一下。前提:springmvc3.2 已经搭建完毕,搭建方式可查看 
http://zld406504302.iteye.com/blog/1887537 
   1:pom.xml 依赖项 
     
Java代码  收藏代码
  1.    <!--tiles jar 依赖-->  
  2.    <dependency>  
  3. <groupId>org.apache.tiles</groupId>  
  4. <artifactId>tiles-extras</artifactId>  
  5. <version>3.0.1</version>  
  6.    </dependency>  
  7.    <!--jstl 依赖 (构建tiles模板会用到)-->  
  8.    <dependency>  
  9.     <groupId>javax.servlet</groupId>  
  10.     <artifactId>jstl</artifactId>  
  11.     <version>1.2</version>  
  12.    </dependency>  
  13.      

  
   2:创建tiles.xml 文件,并构建tiles模板 
       2.1 目录结构 
          [img] 
 
[/img] 
      2.2 文件内容 
        tiles.xml 
      
Java代码  收藏代码
  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="baselayout" template="/WEB-INF/tiles/baselayout.jsp" preparer="com.cn.ld.framework.web.tiles.CustomerPreparer">  
  7.         <put-attribute name="title" value="title" />  
  8.         <put-attribute name="login_user" value="" />  
  9.         <put-list-attribute name="stylesheets">  
  10.             <add-attribute value="static/style/main" />  
  11.         </put-list-attribute>  
  12.         <put-list-attribute name="scripts">  
  13.             <add-attribute value="static/js/util" />  
  14.         </put-list-attribute>  
  15.     </definition>  
  16.       
  17.     <definition name="sublayout" extends="baselayout">  
  18.         <put-attribute name="login_user" value="/WEB-INF/tiles/loginUser.jsp" />  
  19.     </definition>  
  20.       
  21.     <definition name="title" template="/WEB-INF/tiles/title.jsp">  
  22.         <put-attribute name="title" value="springmvc3.2" />  
  23.     </definition>  
  24.       
  25.     <definition name="user/login/home" extends="baselayout">  
  26.         <put-attribute name="title" value="home page" />  
  27.         <put-attribute name="main" value="/WEB-INF/jsp/user/login/home.jsp" />  
  28.     </definition>  
  29.       
  30.     <definition name="home" extends="baselayout">  
  31.         <put-attribute name="main" value="/WEB-INF/tiles/loginUser.jsp" />  
  32.         <put-list-attribute name="scripts" inherit="true">  
  33.         </put-list-attribute>  
  34.     </definition>  
  35.    
  36. </tiles-definitions>  
  37.   
  38.          

       
      baselayout.jsp 
      
Java代码  收藏代码
  1.         <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  2. <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>  
  3. <%@ taglib uri="http://tiles.apache.org/tags-tiles-extras" prefix="tilesx" %>  
  4. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  5.     pageEncoding="UTF-8"%>  
  6. <%  
  7. String path = request.getContextPath();  
  8. String basePath = request.getScheme() + "://"  
  9.         + request.getServerName() + ":" + request.getServerPort()  
  10.         + path + "/";  
  11. %>  
  12. <!DOCTYPE html>  
  13. <html>  
  14.     <head>  
  15.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  16.         <!-- tile <put-attribute name="title" value="title" />-->  
  17.         <title><tiles:insertAttribute name="title" /></title>  
  18.         <!-- stylesheets 要和tiles <put-list-attribute name="stylesheets"> name 一致 -->  
  19.         <!-- classname 定义类型 -->  
  20.         <tilesx:useAttribute name="stylesheets" classname="java.util.List" />  
  21.         <c:forEach items="${stylesheets}" var="src">  
  22.           <link rel="stylesheet" type="text/css" href="<%=basePath %><c:url value='${src}.css' />" />  
  23.         </c:forEach>  
  24.         <tilesx:useAttribute id="scripts" name="scripts" classname="java.util.List" />  
  25.         <c:forEach items="${scripts}" var="src">  
  26.             <script type="text/javascript" src="<%=basePath %><c:url value='${src}.js' />"></script>  
  27.         </c:forEach>  
  28.     </head>  
  29.     <body>  
  30.         <div id="head">  
  31.         <div id="banner"></div>  
  32.         <div id="menu"><jsp:include page="/WEB-INF/tiles/menu.jsp"/></div>      
  33.         </div>  
  34.         <!-- 加载 tiles main 指向的页面<put-attribute name="main" value="/WEB-INF/jsp/user/login/home.jsp" /> -->  
  35.         <div id="main"><tiles:insertAttribute name="main" /></div>  
  36.         <div id="footer"><jsp:include page="/WEB-INF/tiles/footer.jsp"/></div>  
  37.     </body>  
  38. </html>  
  39.          


       footer.jsp 
      
Java代码  收藏代码
  1. Copyright 2013 springmvc3.2, developer java 小生  


       loginUser.jsp 
      
Java代码  收藏代码
  1. <h1>Hello, ${user.name}  ${user.age }  ${user.sex}</h1>  

       
         menu.jsp 
      
Java代码  收藏代码
  1. <div>  
  2.     [list]  
  3.        [*]1  
  4.   
  5.        [*]2  
  6.   
  7.        [*]3  
  8.   
  9.        [*]4  
  10.   
  11.     [/list]  
  12. </div>  


       sublayout.jsp 
      
Java代码  收藏代码
  1.         <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  2. <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>  
  3. <%@ taglib uri="http://tiles.apache.org/tags-tiles-extras" prefix="tilesx" %>  
  4. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  5.     pageEncoding="UTF-8"%>  
  6.  <tiles:insertAttribute name="login_user" />  
  7.          


       title.jsp 
      
Java代码  收藏代码
  1. <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>  
  2. le>springmvc3.2</title>  



   3:dispatcher-servlet.xml 增加tiles view试图 
    
Java代码  收藏代码
  1. <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver" p:order="1"/>  
  2.       
  3.     <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">  
  4.         <property name="definitions">  
  5.             <list>  
  6.                 <value>/WEB-INF/tiles.xml</value>  
  7.             </list>  
  8.         </property>  
  9.     </bean>  
  10.       
  11.     <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/"  
  12.             p:suffix=".jsp" p:order="2"/>  
  13.   
  14.       

    InternalResourceViewResolver 和 TilesViewResolver 共存,且以TilesViewResolver 为首要匹配,通过 p:order 来控制级别。数字越大,级别越低。 

     启动tomcat ,感受效果吧。

SpringMVC 3 + Tiles 2.2.2 Integration

 
Apache Tiles is a popular and mostly used templating framework for java based web application. 
Tiles became more popular because Struts 1.x uses Tiles as its default templating framework.
SpringMVC which is an MVC framework, like Struts, also supports integration of Tiles as its templating framework.

Let us see how we can integrate SpringMVC and Tiles.

You can download Tiles binaries from http://tiles.apache.org/ .

Step#1: Add the following tiles jars to WEB-INF/lib folder.

tiles-api-2.2.2.jar
tiles-core-2.2.2.jar
tiles-jsp-2.2.2.jar
tiles-servlet-2.2.2.jar
tiles-template-2.2.2.jar


Step#2: Configure tiles integration in WEB-INF/dispatcher-servlet.xml

01 <beans>
02  
03  <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
04    <property name="definitions">
05      <list>
06        <value>/WEB-INF/tiles.xml</value>
07      </list>
08    </property>
09  </bean>
10  
11  <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
12    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
13  </bean>
14  
15 </beans>


Step#3: Configure tiles definitions in WEB-INF/tiles.xml

01 <!--?xml version="1.0" encoding="UTF-8"?-->
02  
03   
04 <tiles-definitions>
05  
06  <definition name="baseLayout" template="/jsp/layout/layout.jsp">
07   <put-attribute name="title" value="SivaLabs" />
08   <put-attribute name="header" value="/jsp/layout/header.jsp" />
09   <put-attribute name="navigation" value="/jsp/layout/navigation.jsp" />
10   <put-attribute name="body" value="" />
11   <put-attribute name="footer" value="/jsp/layout/footer.jsp" />
12  </definition>
13   
14  <definition name="login" extends="baseLayout">
15   <put-attribute name="title" value="SivaLabs : Login" />
16   <put-attribute name="navigation" value="" />
17   <put-attribute name="body" value="/jsp/login.jsp" />
18  </definition>
19    
20  <definition name="welcome" extends="baseLayout">
21   <put-attribute name="title" value="SivaLabs : Welcome" />
22   <put-attribute name="body" value="/jsp/welcome.jsp" />
23  </definition>
24    
25 </tiles-definitions>

Step#4: Code the layout JSPs

layout.jsp

01 <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
02 <html>
03 <head>
04 <title><tiles:insertAttribute name="title" ignore="true" /></title>
05 <script type="text/javascript" src="js/sivalabs.js"></script>
06 </head>
07 <body>
08  
09 <table border="1" style="border-collapse: collapse;" cellpadding="2" cellspacing="2"align="center" width="800">    <tbody><tr>
10         <td height="30" colspan="2"><tiles:insertAttribute name="header" /></td>
11     </tr>
12     <tr>
13         <td width="150" height="450" valign="top">
14  
15          <tiles:insertAttribute name="navigation" />
16  
17         </td>
18         <td valign="top" width="650">
19  
20          <tiles:insertAttribute name="body" />
21  
22         </td>
23     </tr>
24     <tr>
25         <td height="30" colspan="2">
26  
27          <tiles:insertAttribute name="footer" />
28  
29         </td>
30     </tr>
31 </tbody></table></body>
32 </html>

header.jsp

1 <h2>SivaLabs : My Experiments On Technology</h2>


footer.jsp

1 <center>
2  <b>© 2011 SivaLabs All Rights Reserved</b>
3 </center>

navigation.jsp

1 <p><a href="createUser.do">Create User</a></p><p><a href="listUsers.do">View Users</a></p><p><ahref="logout.do">Logout</a></p>

welcome.jsp

1 <h2>Welcome to SpringMVC+Tiles Sample Application </h2>


Step#5: 

WelcomeController.java

01 package com.sivalabs.web.controllers;
02  
03 import org.springframework.stereotype.Controller;
04 import org.springframework.web.bind.annotation.RequestMapping;
05  
06 @Controller
07 public class WelcomeController
08 {
09  @RequestMapping("welcome")
10  public String welcome()
11  {
12   return "welcome";
13  }
14 }

Here the String "welcome" will be resolved as a tile name and display the UI as per "welcome" tile configuration.
分享到:
评论

相关推荐

    springmvc与apache tiles整合demo

    在Spring MVC中整合Apache Tiles,可以将页面设计与业务逻辑分离,提高代码的可维护性和复用性。 在Spring MVC中,视图解析器扮演着重要的角色,它负责将处理完的模型数据转换成具体的视图展现给用户。`...

    Tiles框架入门教程示例(springmvc整合tiles)

    在本教程中,我们将深入探讨如何将Tiles与SpringMVC整合,以实现更高效的页面构建。 首先,我们需要理解Tiles的核心概念。Tiles框架基于Apache Struts项目,其主要思想是定义模板(Tiles),这些模板是页面的可重用...

    springMVC + freemarker + apache tiles

    SpringMVC、Freemarker和Apache Tiles是三个在Web开发中广泛应用的框架,它们各自承担着不同的职责。SpringMVC是Spring框架的一部分,主要用于构建基于Java的后端 MVC(Model-View-Controller)应用程序;Freemarker...

    SpringMVC4整合tiles3

    SpringMVC4与Tiles3整合教程 在Java Web开发中,SpringMVC作为一个强大的MVC框架,被广泛用于构建后端逻辑,而Tiles3则是一个视图层框架,主要用于页面布局和组合。将两者整合可以使得应用的视图管理更加灵活高效。...

    Apache Tiles3整合SpringMvc

    Apache Tiles3 是一个强大的视图框架,用于构建和管理网页应用中的页面布局。它允许开发者定义页面模板,然后通过组合这些模板来创建复杂的页面结构。Spring MVC 是一款流行的基于模型-视图-控制器(MVC)设计模式的...

    Maven2.0.11_SpringMVC2.5_Tiles2.0.5

    《Maven2.0.11_SpringMVC2.5_Tiles2.0.5:构建高效Web应用的综合指南》 在Web应用程序开发领域,Maven、Spring MVC和Tiles是三个至关重要的组件,它们共同构建了一个强大而高效的开发框架。本指南将深入解析这些...

    SpringMVCDemo2

    整合SpringMVC与Apache Tiles的步骤如下: 1. 添加依赖:在项目的pom.xml或build.gradle文件中,添加SpringMVC和Apache Tiles的依赖库。 2. 配置SpringMVC:在Spring的配置文件(如spring-servlet.xml)中,添加...

    mybatis+springmvc+spring整合jar包

    SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,广泛应用于企业级应用...在实际开发中,还可以结合其他工具和框架,如Hibernate、Spring Boot、Apache Tiles等,来进一步增强应用的功能和性能。

    Spring mvc整合tiles框架的简单入门教程(maven)

    2. 配置Spring MVC:在`springmvc-servlet.xml`配置文件中,我们需要配置一个视图解析器,例如`UrlBasedViewResolver`,然后为Tiles设置一个特定的视图解析器,如`TilesViewResolver`。这样,Spring MVC就能识别并...

    SpringMVC+Spring+Mybatis框架

    在实际项目中,通常会配合其他组件,如Apache Tiles进行视图管理,Hibernate或JPA进行更高级的ORM,以及Spring Security进行权限控制。 总的来说,SpringMVC+Spring+Mybatis框架组合提供了完整的MVC设计模式解决...

    Java Web框架例子合集(spring,springmvc,mybatis,struts2,hibernate)

    它整合了多种开源技术,如Freemarker和Tiles,为视图层提供了更多的选择。Struts2还支持国际化和主题,增强了用户体验。 5. **Hibernate**: Hibernate 是一个对象关系映射(ORM)框架,它简化了Java应用与数据库...

    级好的stucts入门实例程序(包含了基本的框架和知识点)

    Struts是Apache软件基金会旗下的一款开源Java Web框架,主要用于构建基于MVC(Model-View-Controller)模式的Web应用程序。这个“级好的stucts入门实例程序”包含了一系列基础的Struts框架应用和相关的知识点,适合...

Global site tag (gtag.js) - Google Analytics