Tiles in Spring
来源:互联网 发布:知世图片 编辑:程序博客网 时间:2024/06/14 03:27
14.3. Tiles
It is possible to integrate Tiles - just as any other viewtechnology - in web applications using Spring. The following describesin a broad way how to do this.
NOTE: This section focuses on Spring's support for Tiles 2 (the standalone version of Tiles, requiring Java 5+) in the org.springframework.web.servlet.view.tiles2package. Spring also continues to support Tiles 1.x (a.k.a. "StrutsTiles", as shipped with Struts 1.1+; compatible with Java 1.4) in theoriginal org.springframework.web.servlet.view.tiles package.
14.3.1. Dependencies
To be able to use Tiles you have to have a couple of additionaldependencies included in your project. The following is the list ofdependencies you need.
Tiles version 2.0.4 or higher
Commons BeanUtils
Commons Digester
Commons Logging
These dependencies are all available in the Spring distribution.
14.3.2. How to integrate Tiles
To be able to use Tiles, you have to configure it using filescontaining definitions (for basic information on definitions and otherTiles concepts, please have a look at http://tiles.apache.org). In Spring this is done using the TilesConfigurer. Have a look at the following piece of example ApplicationContext configuration:
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/defs/general.xml</value>
<value>/WEB-INF/defs/widgets.xml</value>
<value>/WEB-INF/defs/administrator.xml</value>
<value>/WEB-INF/defs/customer.xml</value>
<value>/WEB-INF/defs/templates.xml</value>
</list>
</property>
</bean>
As you can see, there are five files containing definitions, which are all located in the 'WEB-INF/defs' directory. At initialization of the WebApplicationContext,the files will be loaded and the definitions factory will beinitialized. After that has been done, the Tiles includes in thedefinition files can be used as views within your Spring webapplication. To be able to use the views you have to have a ViewResolver just as with any other view technology used with Spring. Below you can find two possibilities, the UrlBasedViewResolver and the ResourceBundleViewResolver.
14.3.2.1. UrlBasedViewResolver
The UrlBasedViewResolver instantiates the given viewClass for each view it has to resolve.
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
</bean>
14.3.2.2. ResourceBundleViewResolver
The ResourceBundleViewResolver has to be provided with a property file containing viewnames and viewclasses the resolver can use:
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename" value="views"/>
</bean>
...
welcomeView.class=org.springframework.web.servlet.view.tiles2.TilesView
welcomeView.url=welcome (this is the name of a Tiles definition)
vetsView.class=org.springframework.web.servlet.view.tiles2.TilesView
vetsView.url=vetsView (again, this is the name of a Tiles definition)
findOwnersForm.class=org.springframework.web.servlet.view.JstlView
findOwnersForm.url=/WEB-INF/jsp/findOwners.jsp
...
As you can see, when using the ResourceBundleViewResolver, you can easily mix different view technologies.
Note that the TilesView class for Tiles 2 supports JSTL (the JSP Standard Tag Library) out of the box, whereas there is a separate TilesJstlView subclass in the Tiles 1.x support.
14.3.2.3. SimpleSpringPreparerFactory and SpringBeanPreparerFactory
As an advanced feature, Spring also supports two special Tiles 2 PreparerFactory implementations. Check out the Tiles documentation for details on how to use ViewPreparer references in your Tiles definition files.
Specify SimpleSpringPreparerFactoryto autowire ViewPreparer instances based on specified preparer classes,applying Spring's container callbacks as well as applying configuredSpring BeanPostProcessors. If Spring's context-wide annotation-confighas been activated, annotations in ViewPreparer classes will beautomatically detected and applied. Note that this expects preparer classes in the Tiles definition files, just like the default PreparerFactory does.
Specify SpringBeanPreparerFactory to operate on specified preparer namesinstead of classes, obtaining the corresponding Spring bean from theDispatcherServlet's application context. The full bean creation processwill be in the control of the Spring application context in this case,allowing for the use of explicit dependency injection configuration,scoped beans etc. Note that you need to define one Spring beandefinition per preparer name (as used in your Tiles definitions).
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/defs/general.xml</value>
<value>/WEB-INF/defs/widgets.xml</value>
<value>/WEB-INF/defs/administrator.xml</value>
<value>/WEB-INF/defs/customer.xml</value>
<value>/WEB-INF/defs/templates.xml</value>
</list>
</property>
<!-- resolving preparer names as Spring bean definition names -->
<property name="preparerFactoryClass"
value="org.springframework.web.servlet.view.tiles2.SpringBeanPreparerFactory"/>
</bean>
- Tiles in Spring
- spring tiles
- tiles in android webkit
- apache tiles整合spring
- spring mvc tiles NoSuchDefinitionException
- Spring MVC + Tiles 入门
- Spring MVC集成Tiles使用方法
- Spring MVC集成Tiles使用方法
- Spring MVC集成Tiles框架
- Spring学习日记(一) tiles
- spring实战-Spring-Tiles模板的应用
- tiles
- tiles
- tiles
- Tiles
- Struts2, Spring MVC, Sitemesh, Tiles 性能比较
- struts+spring+hibernate+tiles+proxool(一)
- ★ struts+spring+hibernate+tiles+proxool(一)
- 机器学习领域重要链接(zz)
- 机器学习领域部分算法
- 配置Linux安全日志记录服务器
- 使用tiles2
- Spring 2.5.1 MVC + Tiles 2.0.5 基本配置
- Tiles in Spring
- mysql 字段类型说明
- JPA 批注索引
- 最好的阻止SSH暴力破解的方法(DenyHosts)
- JPA生命周期事件批注
- JPA 批注6
- JPA 批注5
- 替换js中函数的参数
- JPA 批注4