可以通过在Decoration Tag中添加Sling Model来实现这一目标。首先,在模板中添加Decoration Tag,并在HTML标记中添加条件类的占位符。例如,我们要根据组件的属性来添加相应的类。
${myModel.title}
然后,在模板同级目录下创建一个Sling Model,如下所示:
package com.example.models;
import javax.annotation.PostConstruct;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.models.annotations.DefaultInjectionStrategy;
import org.apache.sling.models.annotations.Model;
@Model(
adaptables = Resource.class,
defaultInjectionStrategy = DefaultInjectionStrategy.OPTIONAL)
public class ExampleModel {
private String title;
private boolean showBorder;
@PostConstruct
protected void init() {
title = getProperties().get(“title”, “Default Title”);
showBorder = Boolean.valueOf(
getProperties().get(“showBorder”, “false”));
}
// Getters for title and showBorder
}
在Sling Model中,可以通过getProperties()方法获取组件的所有属性,并将它们设置为类的属性。随后,在模板中将slingResourceModel设置为Sling Model的类名。因此,我们可以使用以下代码在Decoration Tag中添加条件类:
${myModel.title}
在if条件语句中使用三元运算符来检查showBorder属性的值是否为true,如果是,则添加border类,否则不添加。这样,当组件的属性变化时,类也将动态更新。