在我的项目中,我有一个类Device
,如下所示:
public class Device {
private Set<String> abilities = new HashSet<String>();
public Device(Set<String> abilities) {
this.abilities = abilities;
}
public Set<String> getAbilities() {
return abilities;
}
}
我正在使用以下内容初始化此Device
课程。
Set<String> device1Abilities = new HashSet<String>();
device1Abilities.add("BadgeReader");
device1Abilities.add("TemperatureSensor");
device1Abilities.add("xyz");
Device d1 = new Device(device1Abilities);
在我的stringTemplateFile
中,我正在使用
$device.abilities :{ sc | abilities.add("$sc$"); }$
将生成以下代码=&gt;
abilities.add("BadgeReader");
abilities.add("TemperatureSensor");
abilities.add("xyz");
现在,我的要求是-----我不想生成这行代码:
abilities.add("xyz");
我应该在
中指定什么条件 $device.abilities :{ sc | abilities.add("$sc$"); }$
这样它就不会产生那条线?
答案 0 :(得分:4)
该计算确实属于模型,因此您应该对传递给模板的列表进行过滤。模板不应该确定要显示哪些数据。它应该显示模型应该显示的数据。希望这有帮助。
答案 1 :(得分:1)
见here。您正在使用匿名子模板abilities.add("$sc$");
。相反,您可以使用sc作为参数的模板调用。你可以在"xyz"
进行测试。 虽然可能有更多StringTemplate经验的人知道更短的符号。