【发布时间】:2011-09-30 22:15:41
【问题描述】:
这个不是很短,所以请多多包涵。
我正在使用 Spring 3.0、Apache Tiles 2.2 和 Spring WebFlow 2.2 开发一个 Web 应用程序。一个重要的要求是它需要非常模块化,这意味着每个应用程序模块都将作为单独的 Jar 文件交付。这可以通过类路径加载资源和配置来完成。
我想在这个 jar 文件中捆绑模块的所有类、bean 配置、视图定义、流定义和 jsp 页面。前两个是微不足道的。
对于接下来的 2 个,我找到了解决方案:
流程定义
base-path 可以从类路径中加载
<webflow:flow-registry id="flowRegistry" flow-builder-services="flowBuilderServices" base-path="classpath:/org/example/webflow/samples">
<webflow:flow-location-pattern value="/**/*-flow.xml" />
</webflow:flow-registry>
查看定义
TilesConfigurer 也可以通过类路径加载
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
<property name="definitions">
<list>
<value>classpath:/org/example/**/tiles/tile-views.xml</value>
</list>
</property>
</bean>
剩下的唯一事情就是解析页面,最好通过以下方式:
<definition name="myPage" extends="main">
<put-attribute name="header" value="classpath:/org/example/pages/headers/view_events.jsp" />
<put-attribute name="siteContent" value="classpath:/org/example/pages/admin/view_events.jsp" />
<put-attribute name="footer" value="classpath:/org/example/pages/blank.jsp" />
</definition>
有没有什么方法可以达到预期的效果?我通过搜索得到的最接近的东西是 Apache Tiles 通配符支持和 EL 支持,但这不是我需要的。
提前致谢。
【问题讨论】:
标签: spring jsp classpath tiles spring-webflow