Java AEM中是否有方法在'cq:htmlTag'或类似文件中使用动态数据?
为了避免DOM中出现无关的嵌套HTML元素,我们尝试将一些数据附加到AEM添加的注入的Java AEM中是否有方法在'cq:htmlTag'或类似文件中使用动态数据?,java,xml,adobe,aem,Java,Xml,Adobe,Aem,为了避免DOM中出现无关的嵌套HTML元素,我们尝试将一些数据附加到AEM添加的注入的中(例如类名、唯一UUID等)。对于此问题,所涉及的组件将是一个容器。它被超类型化为Adobe的core/wcm/components/container/v1/container。在container.html中,我们使用自己的Java模型对其进行了进一步定制: column.html 我们组件中使用的一些数据是静态的,一些是动态的。在这种情况下,组件名称始终相同;但是,我们也有一个动态的数据块,比如组件i
中(例如类名、唯一UUID等)。对于此问题,所涉及的组件将是一个容器
。它被超类型化为Adobe的core/wcm/components/container/v1/container
。在container.html
中,我们使用自己的Java模型对其进行了进一步定制:
column.html
我们组件中使用的一些数据是静态的,一些是动态的。在这种情况下,组件名称始终相同;但是,我们也有一个动态的数据块,比如组件id
(在我们的例子中,它是Java实现中生成的随机UUID),或者将来可能有其他数据块,比如类
据我所见,我们仅限于在列.html
中声明动态数据,而不是在cq:htmlTag
中声明动态数据。例如,我们将动态数据添加到该文件中:
column.html
任何“静态”数据都可以安全地放置到cq:htmlTag中,它将显示在添加到DOM中的
上,如下所示:
\u cq\u htmlTag/.content.xml
...
是否可以通过使用cq:htmlTag
或其他方法确保组件的最顶层父级也包含我们所需的动态数据?理想情况下,此解决方案是O(1),不需要加载Javascript选择器或额外的库,只需将类添加到
似乎cq:noDecoration
可能是这里的一个选项,但这似乎使事情更加复杂,因为我听说这会破坏编写时组件的可编辑性
谢谢你的帮助 据我所知,您希望将动态数据添加到封装整个组件并由AEM添加的元素中。您是否尝试过使用Sling的输出重写管道?我不确定在您注册的处理器的上下文中有哪些详细信息可用,因此要确保某个特定的div是否需要充实,可能会很棘手。但也许值得探索。