Tiles象其他表现层技术一样,可以集成在使用Spring的Web应用中。下面大致描述一下过程。
所需的库文件
为了使用Tiles,你必须将需要的库文件包含在你的项目中。下面列出了这些库文件。
struts version 1.1
commons-beanutils
commons-digester
commons-logging
commons-lang
这些文件以从Spring中获得。
如何集成Tiles
为了使用Tiles,你必须用定义文件(definition file)来配置它(有关于定义(definition)和其他Tiles概念,请参考http://jakarta.apache.org/struts)。在Spring中,这些都可以使用TilesConfigurer在完成。下面是ApplicationContext配置的片段。
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles.TilesConfigurer"> <property name="factoryClass"> <value>org.apache.struts.tiles.xmlDefinition.I18nFactorySet</value> </property> <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>
你可以看到,有五个文件包含定义,它们都存放在WEB-INF/defs目录中。当初始化WebApplicationContext时,这些文件被读取,并且初始化由factoryClass属性指定的定义工厂(definitons factory)。在这之后,你的Spring Web应用就可以使用在定义文件中的tiles includes内容。为了使用这些,你必须得和其他表现层技术一样有一个ViewResolver。有两种可以选择,InternalResourceViewResolver和ResourceBundleViewResolver。
InternalResourceViewResolver
InternalResourceViewResolver用viewClass属性指定的类实例化每个它解析的视图。
ResourceBundleViewResolver
必须提供给ResourceBundleViewResolver一个包含viewnames和viewclassess属性的属性文件。
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename"><value>views</value></property> </bean> ... welcomeView.class=org.springframework.web.servlet.view.tiles.TilesView welcomeView.url=welcome (<b>this is the name of a definition</b>) vetsView.class=org.springframework.web.servlet.view.tiles.TilesView vetsView.url=vetsView (<b>again, this is the name of a definition</b>) findOwnersForm.class=org.springframework.web.servlet.view.JstlView findOwnersForm.url=/WEB-INF/jsp/findOwners.jsp ...
你可以发现,当使用ResourceBundleViewResolver,你可以使用不同的表现层技术。
| 第1页: 和JSP & JSTL一起使用Spring | 第2页: Tiles的使用 |
| 第3页: Velocity | 第4页: XSLT视图 |
| 第5页: 文档视图 (PDF/Excel) | 第6页: 架构 |