我有一个场景,我想用输入参数调用一个吊索模型。为此,我有这样的代码
<div data-sly-use.model3="${'com.bhf.aem.sling.models.Test' @ colour='red'}">
</div>
但是我想用两个不同的参数在吊索模型中调用一个方法两次。吊索模型可以吗?
任何帮助!!!
我有一个场景,我想用输入参数调用一个吊索模型。为此,我有这样的代码
<div data-sly-use.model3="${'com.bhf.aem.sling.models.Test' @ colour='red'}">
</div>
但是我想用两个不同的参数在吊索模型中调用一个方法两次。吊索模型可以吗?
任何帮助!!!
从 AEM 6.3 开始,有一个新的 HTL 功能允许执行此操作。
在 data-sly-include 和 data-sly-resource 中,您现在可以传递 requestAttributes 以便在接收 HTL 脚本中使用它们。这允许您将参数正确地传递到脚本或组件中。
<sly data-sly-use.settings="com.adobe.examples.htl.core.hashmap.Settings"
data-sly-include="${ 'productdetails.html' @ requestAttributes=settings.settings}"/>
Settings类的Java代码,Map用于传入requestAttributes:
public class Settings extends WCMUsePojo {
// used to pass is requestAttributes to data-sly-resource
public Map<String, Object> settings = new HashMap<String, Object>();
@Override
public void activate() throws Exception {
settings.put("layout", "flex");
}
}
例如,通过 Sling-Model,您可以使用指定 requestAttributes 的值。在这个例子中,布局是通过来自 Use-class 的 Map 注入的:
@Model(adaptables=SlingHttpServletRequest.class)
public class ProductSettings {
@Inject @Optional @Default(values="empty")
public String layout;
}
通过 HTL/Sightly 语言的设计,发送参数只能用于data-sly-use
(使用对象初始化)和data-sly-call
(模板调用)。这样做的原因是将业务逻辑与视图分离。
正如@tomasz-szymulewski 所提到的,由于https://issues.apache.org/jira/browse/SLING-5812,支持在 Sling/AEM 实现中包含资源/脚本的传递请求属性。