Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用输入参数AEM调用Sling模型方法_Aem_Sightly_Sling Models - Fatal编程技术网

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

如何使用输入参数AEM调用Sling模型方法,aem,sightly,sling-models,Aem,Sightly,Sling Models,我有一个场景,我想用输入参数调用一个sling模型。 对于这个,我有一个这样的代码 <div data-sly-use.model3="${'com.bhf.aem.sling.models.Test' @ colour='red'}"> </div> 但是我想用两个不同的参数在sling模型中调用一个方法两次。sling模型可以吗 任何帮助 通过HTL/Sightly语言的设计,发送参数只能用于数据sly使用(使用对象初始化)和数据sly调用(模板调用)。这样做的

我有一个场景,我想用输入参数调用一个sling模型。 对于这个,我有一个这样的代码

<div data-sly-use.model3="${'com.bhf.aem.sling.models.Test' @ colour='red'}">
</div>

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


任何帮助

通过HTL/Sightly语言的设计,发送参数只能用于
数据sly使用
(使用对象初始化)和
数据sly调用
(模板调用)。这样做的原因是将业务逻辑与视图分离


正如@tomasz szymulewski所提到的,因为,在Sling/AEM实现中,支持传递资源/脚本包含的请求属性。

通过HTL/Sightly语言的设计,发送参数只能用于
数据sly use
(使用对象初始化)和
数据sly call
(模板调用)。这样做的原因是将业务逻辑与视图分离


正如@tomasz szymulewski所提到的,因为在Sling/AEM实现中支持传递资源/脚本包含的请求属性。

AEM 6.3中有一个新的HTL特性允许这样做

在data sly include和data sly资源中,您现在可以传递 请求属性,以便在接收HTL脚本中使用它们。 这允许您将参数正确地传递到脚本或 组成部分

<sly data-sly-use.settings="com.adobe.examples.htl.core.hashmap.Settings" 
        data-sly-include="${ 'productdetails.html' @ requestAttributes=settings.settings}"/>

AEM 6.3中有一个新的HTL功能,允许这样做

在data sly include和data sly资源中,您现在可以传递 请求属性,以便在接收HTL脚本中使用它们。 这允许您将参数正确地传递到脚本或 组成部分

<sly data-sly-use.settings="com.adobe.examples.htl.core.hashmap.Settings" 
        data-sly-include="${ 'productdetails.html' @ requestAttributes=settings.settings}"/>

这实际上是在初始化期间传递参数的另一种方式,而不是在调用方法时。这实际上是在初始化期间传递参数的另一种方式,而不是在调用方法时。
@Model(adaptables=SlingHttpServletRequest.class)
public class ProductSettings {

  @Inject @Optional @Default(values="empty")
  public String layout;
}