spring - 如何配置 Spring 和 Apache Tiles 定义以从类路径解析 jsps

标签 spring jsp classpath tiles spring-webflow

这个不是很短,所以请多多包涵。
我正在使用 Spring 3.0、Apache Tiles 2.2 和 Spring WebFlow 2.2 开发一个 Web 应用程序。一个重要的要求是它需要非常模块化,这意味着每个应用程序模块都将作为单独的 Jar 文件交付。这可以通过类路径加载资源和配置来完成。
我想在这个 jar 文件中捆绑模块的所有类、bean 配置、 View 定义、流定义和 jsp 页面。前两个是微不足道的。
对于接下来的 2,我找到了解决方案:
流定义
可以从类路径加载基本路径

<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 支持,但这不是我需要的。
提前致谢。

最佳答案

我有一些和你描述的非常相似的东西。我解决了在我的 pom.xml 中添加“tiles-el”的问题,然后只需在我的图 block 定义上将“值”切换为“表达式”,就像这样

   <definition name="mypage" extends="main">
        <put-attribute name="header" expression="${header}"/>

您甚至可以像这样在表达式上使用简单的条件
<put-attribute name="header" expression="/WEB-INF/layouts/${bean.field ? 'path1/' : 'path2/'}header.jsp">

关于spring - 如何配置 Spring 和 Apache Tiles 定义以从类路径解析 jsps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6618928/

相关文章:

java - 如何使用类路径 : 通过 Liberty Profile 上的 application.properties 引用 Flyway.locations

java - 在jsp文件中添加参数

java - response.sendredirect 中的空指针异常

hadoop - 使用 Yarn 运行 spark 作业时出现错误 :com. google.common.util.concurrent.Futures.withFallback

java - 查询没有结果 JDBCTemplate

java - Kafka AvroSchema 未生成,当一个类具有数据类型为对象类的字段时

java - 如何通过Java配置使用Spring Security实现多登录场景?

java - 如何在 Struts 2 中向 Set 集合中插入一个值

java - 在 Visual Studio Code 中导入 .jar,类路径

java - JDBC 驱动程序和终端类路径