Struts2tiles插件和子文件夹中的tiles配置文件问题

问题描述 投票:0回答:1

如发行说明所述:

该版本通过直接复制库的源代码来嵌入Apache Tiles。 Apache Tiles 项目已经退役,现在它在阁楼上 - 该项目没有任何开发。 Struts 提交者决定复制所有必需的源代码,以继续不受干扰地支持 Struts 2 Tiles 插件。

所以我想从旧的tiles库中清理我的应用程序并完全迁移到Struts Tiles插件,但是如果我替换旧的监听器(不包含在新的库中)

org.apache.tiles.extras.complete.CompleteAutoloadTilesListener 

org.apache.struts2.tiles.StrutsTilesListener

监听器仅在

tiles\*.xml
文件夹中找到
WEB-INF
定义并忽略子文件夹(例如
WEB-INF/foo/tiles/tiles-foo.xml

我尝试使用这个配置了旧模式的参数

CompleteAutoloadTilesListener
但不起作用,因为它需要单个文件或列表而不是模式。

<context-param>
        <param-name>org.apache.tiles.definition.DefinitionsFactory.DEFINITIONS_CONFIG</param-name>
        <param-value>/WEB-INF/**/tiles*.xml,classpath*:META-INF/**/tiles*.xml</param-value>
    </context-param>

目前使其工作的唯一方法是指示

tiles*.xml
的整个列表,但这是一个旧的应用程序,我有很多文件,我有丢失一些文件的风险。

我可以尝试保留唯一的tiles-extras并继续使用旧的CompleteAutoloadTilesListener,但我认为我可能会遇到未来的兼容性问题。

有人找到解决方法了吗?

谢谢

struts2 tiles apache-tiles struts2-tiles-plugin
1个回答
0
投票

您不需要指定任何参数进行配置。定义应使用

WEB-INF
模式置于
resources
tiles*.xml
中。

Tiles 插件 - 用法:

从 Struts 2.3.28 开始,该插件会自动加载与以下模式匹配的所有 Tiles 定义

tiles*.xml

© www.soinside.com 2019 - 2024. All rights reserved.