该版本通过直接复制库的源代码来嵌入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,但我认为我可能会遇到未来的兼容性问题。
有人找到解决方法了吗?
谢谢
您不需要指定任何参数进行配置。定义应使用
WEB-INF
模式置于 resources
或 tiles*.xml
中。
从 Struts 2.3.28 开始,该插件会自动加载与以下模式匹配的所有 Tiles 定义
。tiles*.xml