2

私のプロジェクトでは、次の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$"); }$

次のコードを生成します=>

abilities.add("BadgeReader");
abilities.add("TemperatureSensor");
abilities.add("xyz");

今、私の要件は-----私はこのコード行を生成したくないです:

abilities.add("xyz");

どのような条件を指定する必要がありますか

 $device.abilities :{ sc | abilities.add("$sc$"); }$

その線を生成しないように?

4

2 に答える 2

4

その計算は実際にはモデルに属しているため、テンプレートに渡したリストのフィルタリングを行う必要があります。テンプレートは、表示するデータを把握してはなりません。モデルが表示する必要があると言っているデータが表示されます。お役に立てれば。

于 2012-04-17T23:52:51.407 に答える
1

ここを参照してください。匿名のサブテンプレートを使用していabilities.add("$sc$");ます。代わりに、scをパラメーターとして使用してテンプレート呼び出しを使用できます。そして、そこでテストすることができます"xyz"StringTemplateの経験が豊富な人は、短い表記を知っているかもしれませんが。

于 2012-04-18T00:02:26.863 に答える