gpt4 book ai didi

model - 无法从吊索模型获取/设置数据

转载 作者:行者123 更新时间:2023-12-04 22:04:41 25 4
gpt4 key购买 nike

我们有吊索模型。例如

@Model(adaptables=Resource.class)
public class MyModel {

@Inject
private String propertyName;
}
public Image getPropertyName) {
return propertyName;
}

我们还添加了
<Sling-Model-Packages>
org.apache.sling.models.it.models
</Sling-Model-Packages>

在此之后,我们可以打开该组件的编辑对话框并检查是否插入了一些数据。我们可以在 JCR 中看到这些数据
但是当我们试图通过 Sightly 获取 propertyName 的内容时
<div class="feature-wrapper" data-sly-use.model="org.apache.sling.models.it.models.MyModel">
<div data-sly-test="${model.propertyName}" data-sly-unwrap>

model.propertyName 将为空

任何想法或建议?
我如何调试 Sling?

任何人都可以在这篇文章中添加标签“Sightly”吗?

最佳答案

您的包可能从 javax.inject.Inject 包中导入 org.apache.sling.scripting.java 标签,而不是 Sling Models 包。在 AEM6 中,org.apache.sling.scripting.java 包和 Sling Models 包公开了这个包,如果你的包最终从前者获得导入,Sling Models 将无法识别你的导入注释。

通过将 <Require-Bundle>org.apache.sling.models.api</Require-Bundle> 添加到 maven-bundle-plugin 配置中,我能够在我的实例中解决这个问题,实际上是添加了一个 Require-Bundle 指令,强制我的包使用 org.apache.sling.models.api 包。

为了找到这个,我从 Sling SVN 存储库下载了 Sling 源代码,在 IDE 中打开它,并将调试器附加到我正在运行的 AEM 实例并在 Sling 模型包中设置断点以查看该机制如何尝试解决导入注释。

关于model - 无法从吊索模型获取/设置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25324415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com