私は StringTemplate 4 を使い始めており、データベースに保存されている単純な文字列からテンプレートを作成しようとしています。私は次のようなものを使用します:
STGroup group = new STGroupString(null, someTemplateString, '$', '$');
ST st = group.getInstanceOf(someTemplateName);
st.add(someAttribute, someValue);
template に定義された属性のすべてまたはそれよりも少ない数を定義すると、すべてが正常に機能しますsomeTemplateName
。存在しない属性を追加しようとすると、次の例外が発生します。
no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
...
これは理にかなっています。ただし、 template にどの属性が定義されているかを事前に知る方法はないようですsomeTemplateName
。私は次のようなものを見つけることを期待していました:
bool isDef = st.isDefined(someAttribute);
しかし、そのような方法はありません。私は正しいですか?これを回避する方法はありますか?