You need to enable JavaScript to run this app. AEM Sightly(HTL)无法识别Java Model嵌套字段问题求助
优惠活动
大模型
产品
解决方案
定价
更多

AEM Sightly(HTL)无法识别Java Model嵌套字段问题求助

问题原因

  1. data-sly-use使用方式错误:该属性仅用于首次实例化HTL可调用对象,参数要求为Java类全限定名、JS脚本路径或者HTL模板路径,你传入已经实例化完成的myModel.model对象作为参数时,HTL解析器会尝试将该对象解析为路径字符串,内部解析逻辑异常就会抛出ArrayIndexOutOfBoundException。
  2. 替换为data-sly-test后div不显示的问题:你当前的用法本来就不需要用data-sly-use去绑定已经存在的实例,嵌套的Model对象可以直接访问,不需要额外初始化。你说封装为列表用data-sly-list调用正常,也证明你的Model本身实例化没有问题,不存在字段为null的情况。

解决方案

不需要额外给AEM做配置,只要你的两个Model类都正确加了@Model相关注解、所在包已经加入Sling Model的扫描路径,直接修改HTL写法即可:

方案1:直接访问嵌套属性

不需要额外声明变量,直接调用嵌套的getter即可:

<sly data-sly-use.myModel="path.to.package.MyModel" />
<div>${myModel.model.myField}</div>

方案2:用data-sly-set定义局部变量简化书写

如果需要多次用到嵌套的Model对象,可以用data-sly-set定义别名:

<sly data-sly-use.myModel="path.to.package.MyModel" />
<div data-sly-set.localModel="${myModel.model}">${localModel.myField}</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 20:45:04