Apache tiles3-SpringMVC

Apache的一个独立项目。

Apache Tiles是一个JavaEE应用的页面布局框架。

Spring MVC 以视图解析器的形式为Apache Tiles提供了支持,这个视图解析器能够将逻辑视图名解析为Tile定义。

今天我们学习Apache Tiles3这个版本。

一、配置视图解析器

回想一下我们在曾经配置过的试图解析器:

1 @Bean
2 public ViewResolver viewResolver() {
3     InternalResourceViewResolver resolver = new InternalResourceViewResolver();
4     resolver.setPrefix("/WEB-INF/views/");
5     resolver.setSuffix(".jsp");
6     return resolver;
7 }

为了在Spring中能够使用Tiles,我们需要配置几个bean,我们需要一个  TilesConfigurer bean,它会负责定位和加载Tile定义并协调生成Tiles

除此之外,还需要  TilesViewResolver bean 将逻辑视图名称解析为Tiles定义。

Apache Tiles3TilesConfigurer/TilesViewResolver 位于 org.springframework.web.servlet.view.tiles3 包中。

我们如下配置视图解析器:

1 @bean
2 public TilesConfigurer tilesConfigurer() {
3     TilesConfigurer tiles = new TilesConfigurer();
4     tiles.setDefinitions(new String[]{
5         "/WEB-INF/layout/tiles.xml"    //指定Tile定义的位置
6     });
7     tiles.setCheckRefresh(true);    //起用刷新功能
8     return tiles;
9 }

 当配置TilesConfigurer 的时候,所要设置的最重要的属性就是definitions。这个属性接受一个String类型的数组,其中每个元素都指定一个Tile定义的XML文件。

TilesViewResolver并不需要过多配置什么,如下:

1 @bean
2 public ViewResolver viewResolver(){
3     return new TilesViewResolver();
4 }

二、定义Tiles

 Apache提供了一个文档类型定义(document type definition,DTD),用在xml文件中指定Tiles的定义。

xml中有<definition>标签: name属性,template属性,extends属性。

     <put-attribute>子标签:value属性

具体XML如下:

 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 >
 6 <tiles-definitions>
 7     <definition name="base" template="/WEB-INF/layout/page.jsp">
 8         <put-attribute name="header" value="/WEB-INF/layout/header.jsp" />
 9         <put-attribute name="footer" value="/WEB-INF/layout/footer.jsp" />
10     </definition>
11     
12     <definition name="home" extends="base">
13         <put-attribute name="body" value="/WEB-INF/layout/home.jsp" />    
14     </definition>
15     <definition name="registerForm" extends="base">
16         <put-attribute name="body" value="/WEB-INF/layout/registerForm.jsp" />    
17     </definition>
18     <definition name="profile" extends="base">
19         <put-attribute name="body" value="/WEB-INF/layout/profile.jsp" />    
20     </definition>
21     <definition name="spittles" extends="base">
22         <put-attribute name="body" value="/WEB-INF/layout/spittles.jsp" />    
23     </definition>
24         <definition name="spittle" extends="base">
25         <put-attribute name="body" value="/WEB-INF/layout/spittle.jsp" />    
26     </definition>
27 </tiles-definitions>

我们再来设置template

 

posted on 2017-10-06 19:48  剑姬  阅读(881)  评论(0编辑  收藏  举报

导航