问题标签 [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.

0 投票
2 回答
3983 浏览

aem - SlingModels:从 Resource 适应时可以注入 SlingHttpServletRequest 吗?

我是 SlingModels 的新手,注释还不是很清楚。我目前正在尝试将一些基本的基础组件从 AEM 6.2 转换为使用 SlingModels。

对于图像组件,基础 JSP 使用 SlingHttpServletRequest 设置 ImageDoctype。所以我尝试了以下方法:

但是有了这个request是空的。所以我转而使用:

现在适用于reuqestresource

JSP 代码:

这是正确的方法还是有办法适应resourceans 仍然能够注入request

0 投票
3 回答
1504 浏览

aem - SlingModels:从 SlingHttpServletRequest 注入其他模型

我的另一个问题的一个原因是以下用例:我想创建一个 TextImageModel,它使用我的 ImageModel 作为注入属性并扩展我的 TextModel:

但这不起作用。当我将其用作适应性时它应该可以工作Resource,但我的 ImageModel 和 TextModel 中也需要 SlingHttpServletRequest:

如何使用自适应请求注入 ImageModel?图片资源是一个名为的子资源image

0 投票
1 回答
403 浏览

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 构建这个表单组件。

0 投票
1 回答
704 浏览

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

0 投票
2 回答
4644 浏览

aem - 如何使用输入参数 AEM 调用 Sling 模型方法

我有一个场景,我想用输入参数调用一个吊索模型。为此,我有这样的代码

但是我想用两个不同的参数在吊索模型中调用一个方法两次。吊索模型可以吗?

任何帮助!!!

0 投票
1 回答
721 浏览

aem - 如何在 AEM 6.2 中的页面和组件之间共享数据?

有没有办法可以使用相同的数据在 HTL 中调用模型的相同实例?我想在页面模型中创建一个对象,比如说一个字符串对象,然后在组件模型中使用它。要创建 bean(或模型实例),我调用

在页面和组件中问题是我现在有 2 个实例和 2 组本地数据 - 我不想拥有。

0 投票
1 回答
8226 浏览

aem - AEM 6.3 - 使用 Sling 模型的多场

我正在尝试创建一个 Coral UI 3 多字段并使用 Sling 模型。对话框如下所示: 在此处输入图像描述

在此处输入图像描述

这是代码:

这是 HTL 文件:

这是我得到的错误:

我不确定我在这里做错了什么。我不确定它是否与对话框有关?这就是我的怀疑。

任何帮助表示赞赏。

提前致谢。

0 投票
2 回答
1002 浏览

maven - IntelliJ 中的 Build Module 对 maven 模块的实际作用

当我跑

对于我的 Maven 模块,它编译得很好。没有问题。但是当我在 IntelliJ 中打开 pom.xml 文件并选择 Build -> Build module 时,我会遇到以下问题:

这是一个带有 AEM 代码的模块,它使用 maven-sling-plugin。它适用于项目中的其他开发人员。因为它在直接从 maven 执行时有效,所以我试图了解 IntelliJ 在后台执行的操作。但实际上,我的问题是那些编译问题。

从我发现 IntelliJ 在 Build 完成时不会调用 maven 。有什么想法可以找到从 IntelliJ 运行和直接从 Maven 运行之间的差异吗?

0 投票
2 回答
9385 浏览

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 的请求。该模型未注册。

}

0 投票
4 回答
12159 浏览

sling-models - 如何在 aem 6.3 中使用 sling 模型获取页面属性?

我正在尝试使用 AEM 6.3 中的 Sling 模型获取页面属性,但我总是得到空值。

财产路径:

您能否让我知道使用 Sling Models 评估财产价值的正确方法?