问题标签 [sling-models]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
aem - SlingModels:从 Resource 适应时可以注入 SlingHttpServletRequest 吗?
我是 SlingModels 的新手,注释还不是很清楚。我目前正在尝试将一些基本的基础组件从 AEM 6.2 转换为使用 SlingModels。
对于图像组件,基础 JSP 使用 SlingHttpServletRequest 设置 ImageDoctype。所以我尝试了以下方法:
但是有了这个request
是空的。所以我转而使用:
现在适用于reuqest
和resource
JSP 代码:
这是正确的方法还是有办法适应resource
ans 仍然能够注入request
?
aem - SlingModels:如何从基础构建表单组件(注入 PageContext?)
AEM 的基础组件只是普通的 JSP,在任何 Java bean 中都没有太多逻辑。我现在尝试将表单组件 java 逻辑转换为 Sling 模型。但是再次启动组件并不容易,因为有两件事要做(从 复制/libs/foundation/components/form/start/start.jsp
)。第一的:
第二:
slingRequest
当我从中调整模型时,这很容易,但是我从哪里得到pageContext
呢?我还需要它来获取componentContext
可以通过pageContext
.
我在适应时尝试了以下方法SlingHttpServletRequest
:
但这不起作用。
编辑:
我想出了如何在没有 pageContext 的情况下创建表单启动组件。虽然与表单开始一起,有表单结束,并且有一部分直接使用 pageContext (复制自/libs/foundation/components/form/end/end.jsp
)
不确定这个布尔值是什么,或者更确切地说为什么在渲染按钮之前检查它。
所以要么我需要一种方法来注入,pageContext
要么我需要另一种方法来使用 Sling Models 构建这个表单组件。
aem - ResourceBundle 在 AEM 6.2 中不起作用
按照此处的文档,我试图让 i18n 在我的 AEM 6.2 实例上工作:
问题是,如果什么也没找到,我总是得到一个org.apache.sling.engine.impl.helper.NullResourceBundle
似乎只是一个空的后备包。我尝试在 OSGi 配置中预加载捆绑包,但无济于事。
即使我自己的翻译不起作用,至少它应该包含产品提供的预定义翻译。虽然我自己出现在工具中: http://localhost:4502/libs/cq/i18n/translator.html
任何想法为什么我没有得到有效的资源包?
编辑:我做了一个简单的 JSP 测试,它在那里工作,所以它与 Sling 模型有关,其中代码驻留在@PostConstruct
模型改编自SlingHttpServletRequest
aem - 如何使用输入参数 AEM 调用 Sling 模型方法
我有一个场景,我想用输入参数调用一个吊索模型。为此,我有这样的代码
但是我想用两个不同的参数在吊索模型中调用一个方法两次。吊索模型可以吗?
任何帮助!!!
aem - 如何在 AEM 6.2 中的页面和组件之间共享数据?
有没有办法可以使用相同的数据在 HTL 中调用模型的相同实例?我想在页面模型中创建一个对象,比如说一个字符串对象,然后在组件模型中使用它。要创建 bean(或模型实例),我调用
在页面和组件中问题是我现在有 2 个实例和 2 组本地数据 - 我不想拥有。
maven - IntelliJ 中的 Build Module 对 maven 模块的实际作用
当我跑
对于我的 Maven 模块,它编译得很好。没有问题。但是当我在 IntelliJ 中打开 pom.xml 文件并选择 Build -> Build module 时,我会遇到以下问题:
这是一个带有 AEM 代码的模块,它使用 maven-sling-plugin。它适用于项目中的其他开发人员。因为它在直接从 maven 执行时有效,所以我试图了解 IntelliJ 在后台执行的操作。但实际上,我的问题是那些编译问题。
从我发现 IntelliJ 在 Build 完成时不会调用 maven 。有什么想法可以找到从 IntelliJ 运行和直接从 Maven 运行之间的差异吗?
mockito - Sling 模型单元测试:在 SlingHttpServletRequest 中模拟 currentPage
我在测试 Sling 模型时遇到了一些问题:currentPage 由于某种原因没有被注入。
我的 Sling 模型如下所示:
我为它编写了一些 JUnit 测试,如下所示:
这是我得到的错误:
对于其他一些 Sling 模型测试,注入效果很好,尽管对于 currentPage 我不确定如何继续。我也找不到关于在 Sling 模型中模拟 currentPage 对象的文档。
任何帮助将不胜感激。
更新
以下评论有助于更好地理解该测试的外观。我做了一些更改,但我的测试仍然失败。现在这些类看起来像这样:
}
以及带有特定喷油器的更新模型:
setUp() 方法不会抛出任何异常,也不会发出任何警告。变量 mymodel 为空,所以我仍然在这里遗漏了一些东西。
更新 2
我将代码推送到 Github,您可以在以下 URL https://github.com/josebercianowhitbread/myproject中找到该项目
笔记:
- 在 AEM 6.3 中进行了测试
- 像往常一样部署项目: mvn clean install -PautoInstallPackage
-该项目添加了一些示例页面以确保 Sling 模型按预期工作
- Sling 模型的功能非常简单:它沿着内容树向上爬,直到找到“isRootPage”属性设置为 true 的父节点。
你可能有任何问题让我知道。
提前感谢您提供的任何帮助。
更新 3
Justin Edelson 善意地纠正并提供了测试代码。非常感谢他和 Ahmed Musallam,他一直在追逐这篇文章,直到他确保一切正常:)
我的初始代码的两个主要问题是:我试图模拟 Slick 请求,但应该使用来自 AemContext 的请求。该模型未注册。
}
sling-models - 如何在 aem 6.3 中使用 sling 模型获取页面属性?
我正在尝试使用 AEM 6.3 中的 Sling 模型获取页面属性,但我总是得到空值。
财产路径:
您能否让我知道使用 Sling Models 评估财产价值的正确方法?