電子メールメッセージを表すさまざまなVelocityテンプレートファイルがあります。テンプレートファイルがメッセージの件名と内容を出力できるようにするためのエレガントな方法を探しています。私はいくつかのオプションを検討しました:
出力の最初の行を「Subject:Bla」のようにして、Javaで削除します。Javaから派手な文字列操作を実行することは、そもそもVelocityを使用して解決しようとしている問題であるため、このアプローチを拒否しました。
セッターを呼び出すために、Velocityマクロの一部のコードのマッピングに設定可能なオブジェクトをスローします。長所:非常に簡単です。短所:出力の形式としても、Velocityから外部オブジェクトを設定するというアイデアは嫌いです。しかし、それは不合理な嫌悪感かもしれません。
#setSubjectLineなどのカスタムVelocityコマンドを作成します。長所:よりエレガント。短所:電子メールであるかどうかに関係なく、すべてのテンプレートに有効なコマンドとして適用されます。
件名と残りの電子メール用に別々のテンプレートファイルを用意します。プロ:特別なトリックはまったくありません!短所:すべての電子メールロジックが同じ場所にあるわけではありません。
私が知らないいくつかのクールなVelocityトリック。
???
だから私は何をすべきですか?5または6の提案はありますか?1、2、3、または4を選択する必要がある理由は?