技术开发 频道

集成表现层

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,你可以使用不同的表现层技术。

0
相关文章