在AEM中,可以使用两种方法向组件传递数据:使用组件属性和使用Sling模型。
使用组件属性:
dialog.xml
文件中定义属性字段,例如:
html.jsp
或html.html
文件中获取属性值,例如:String data = properties.get("data", String.class);
其中,properties
是org.apache.sling.api.resource.ValueMap
类型的参数,可以在Java类的构造函数中注入。
使用Sling模型:
@Model(adaptables = SlingHttpServletRequest.class, adapters = {Model.class}, resourceType = "your/component/resourceType")
public class YourComponentModel {
@Inject
@Named("data")
private String data;
public String getData() {
return data;
}
}
html.jsp
或html.html
文件中使用模型,例如:<%
YourComponentModel model = request.adaptTo(YourComponentModel.class);
String data = model.getData();
%>
在上述代码中,your/component/resourceType
应替换为组件的资源类型。
这是一种使用Sling模型向组件传递数据的方法。使用模型,您可以更灵活地处理组件的数据,并将其注入到Java类的字段中。
以上是使用AEM向组件传递数据的两种常见方法。根据您的具体需求和项目架构,您可以选择适合您的方法。