0

私は本当に基本的な StringTemplate の初心者です。これを利用して自動メールを送信しようとしています。そこにあるものを消化するために、私はできる限り多くを読みました。簡単なテスト ケースから始めて、レンダリングするオブジェクトのプロパティを取得するのに問題があります。テスト ケースとして、テンプレート ファイル email.stg に次のものがあります。

delimiters "$", "$"
activate(person) ::= <<$person.personFirstName$>>

Person オブジェクトを渡して、テンプレートに personFirstName プロパティをレンダリングさせようとしています。これは、パブリックな getter Person.personFirstName() を呼び出します。

私のJavaコードは次のようになります:

Person _thePerson = //fetched from database
STGroup group = new STGroupFile(/tmp/email.stg); 
ST st = group.getInstanceOf("activate");
st.add("person", _thePerson);
System.out.println("the person first name is: " + _thePerson.personFirstName());
System.out.println(st.render());

私の出力は、personFirstName プロパティが Java 経由で利用可能であることを反映していますが、私のテンプレートはそれをレンダリングしません。

the person first name is: Ivan
<nothing is returned here>

アクティベート テンプレートをこれに制限すると、次のようになります。

activate(person) ::= <<$person$>>

person オブジェクトが _thePerson.toString() としてレンダリングされる次の結果が得られます。

the person first name is: Ivan
999999999 - Johnson, Ivan G

取得しようとしているより複雑なテンプレートに進むことができるように、どんな助けも大歓迎です。

4

1 に答える 1