You need to enable JavaScript to run this app. Tiles2迁移至Tiles3时如何配置tiles定义中put-list-attribute的bean列表
优惠活动
大模型
产品
解决方案
定价
更多

Tiles2迁移至Tiles3时如何配置tiles定义中put-list-attribute的bean列表

Tiles3 迁移后 put-list-attribute 内bean配置失效解决指南

失效根本原因

Tiles3 对配置解析模块做了完全重构,不再原生识别Tiles2版本内put-list-attribute节点下的bean标签语法,原有写法没有对应的解析规则映射,配置的Tab对象列表无法被正常实例化注入,最终导致功能失效。

可落地适配方案

  • 方案1:最小改动适配Tiles3原生语法
    仅需将原有配置中的bean标签替换为Tiles3默认支持的item标签,其他属性、配置结构完全保留即可正常运行,修改示例如下:
    <definition name=".tabs.resource.list" extends=".tabs.resource">
        <put-attribute name="selectedIndex" value="0" />
        <put-attribute name="resourceType" value="1" />
        <put-list-attribute name="tabList">
            <item classtype="org.test.sample.ui.util.Tab">
                <set-property property="value" value="Tab1" />
                <set-property property="link" value="currentHealthTab1listVisibility.action" />
                <set-property property="mode" value="currentHealth" />
                <set-property property="height" value="21" type="java.lang.Integer" />
                <set-property property="width" value="102" type="java.lang.Integer" />
            </item>
            <item classtype="org.test.sample.ui.util.Tab">
                <set-property property="value" value="Tab2" />
                <set-property property="link" value="viewlistTab2listVisibility.action" />
                <set-property property="mode" value="view" />
                <set-property property="height" value="21" type="java.lang.Integer" />
                <set-property property="width" value="102" type="java.lang.Integer" />
            </item>
        </put-list-attribute> 
    </definition>
    
    注意两个适配细节:
    • classtype、set-property的属性写法和Tiles2完全兼容,不需要额外调整
    • 针对int/long等非字符串类型的属性值,需要显式追加type类型声明,避免配置解析时出现字符串到数值类型的转换报错
  • 方案2:自定义解析器兼容老配置
    如果项目存量xml中有大量Tiles2时代的bean节点配置,逐行改造成本过高,可以自定义扩展Tiles的节点解析规则,将bean标签的解析逻辑和Tiles3内置的item标签解析逻辑做绑定,让解析器遇到原有的bean节点时直接走对象实例化、属性自动注入的流程,全程不需要修改任何业务侧的xml配置。
  • 方案3:动态数据剥离
    将原本写在xml配置里的tabList列表从静态配置中剥离,放到对应业务的Controller层模型数据中返回给前端,xml仅保留非动态的通用属性配置,这种方式适合tab配置会随业务变化的场景,长期维护成本更低。

内容的提问来源于stack exchange,提问作者Vikram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.04 05:15:04