在AEM 6.4中,您可以使用Sling模型从设计对话框读取多个字段。以下是一个解决方法,包含代码示例:
首先,在您的组件的Java类中,创建一个Sling模型:
package com.example.core.models;
import javax.inject.Inject;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.injectorspecific.Self;
import org.apache.sling.models.annotations.injectorspecific.ValueMapValue;
@Model(adaptables = SlingHttpServletRequest.class, defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class MyModel {
@Self
private SlingHttpServletRequest request;
@ValueMapValue
private String field1;
@ValueMapValue
private String field2;
// Getters for field1 and field2
public String getField1() {
return field1;
}
public String getField2() {
return field2;
}
}
然后,在您的组件的HTML文件中,您可以通过以下方式使用Sling模型的字段:
Field 1: ${model.field1}
Field 2: ${model.field2}
最后,在您的设计对话框中,确保在提交表单时将字段的值传递给后端,以便将其存储在内容资源中。
这样,您就可以使用Sling模型从设计对话框读取多个字段了。在组件的Java类中,您可以访问这些字段的值,并在组件的HTML文件中使用它们。