在AEM 6.3中,Sling Use类的继承可以通过以下步骤来实现:
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.api.scripting.SlingBindings;
import org.apache.sling.api.scripting.SlingScriptHelper;
import org.apache.sling.models.annotations.Model;
@Model(adaptables = SlingHttpServletRequest.class)
public class CustomUseClass extends Use {
private String propertyValue;
@Override
public void init(Bindings bindings) {
// 获取当前请求
SlingHttpServletRequest request = (SlingHttpServletRequest) bindings.get(SlingBindings.REQUEST);
// 获取资源
Resource resource = request.getResource();
// 获取资源的属性值
ValueMap valueMap = resource.getValueMap();
propertyValue = valueMap.get("propertyName", String.class);
}
public String getPropertyValue() {
return propertyValue;
}
}
Property value: ${customUseClass.propertyValue}
这样,在渲染模板时,CustomUseClass将会被实例化,并且可以在模板中访问customUseClass.propertyValue
属性。
请注意,这只是继承Sling Use类的一种实现方法。还有其他方法,如通过Sling Models等。选择适合您项目需求和架构的方法。