AmazonjavaSDKを使用してメールを送信しています。HTMLテンプレートをメールで送信する必要があります。私はこれのためのプログラムを書きました、そしてそれはうまく働いています。しかし今、私はhtmlコード全体を単一の文字列に格納しています。しかし、テンプレートを編集する必要があるときはいつでも、プログラムを編集する必要があります(つまり、String変数を意味します)。また、そのhtmlコードの "\...etcなどの特殊文字にも注意する必要があります。この問題を解決するためのエレガントな方法を提案してください。
4 に答える
そのためのテンプレートエンジンを使用し、テンプレートをクラスパスまたはファイルシステムのいずれかに外部に保存します。これがあなたが1つを選ぶのを助けるかもしれない質問です:https ://stackoverflow.com/questions/2381619/best-template-engine-in-java
Apache Common Lang api を使用StringEscapeUtils#escapeHtml
します。HTML エンティティを使用して文字列内の文字をエスケープしString
、nullstring
入力の場合は新しいエスケープされた null を返します。
例えば:
"US" & "UK"
になります:
"US" & "UK".
Apache Velocity Projectを確認してください。いくつかのテンプレートを作成できます。ご利用案内ページより
Velocity は、テンプレートから Web ページ、SQL、PostScript、およびその他の出力を生成するために使用できます。ソース コードとレポートを生成するためのスタンドアロン ユーティリティとして、または他のシステムの統合コンポーネントとして使用できます。
VTL(Velocity Template Language) を使用できます。上記リンクの例
<HTML>
<BODY>
Hello $customer.Name!
<table>
#foreach( $mud in $mudsOnSpecial )
#if ( $customer.hasPurchased($mud) )
<tr>
<td>
$flogger.getPromo( $mud )
</td>
</tr>
#end
#end
</table>
より適切で簡単な方法は、単純なファイル読み取り操作を使用してhtmlファイルを1行ずつ読み取り、この各行を1つの文字列に追加することです。また、SOからこのソリューション(プロジェクトにライブラリファイルをもう1つ追加する準備ができている場合は、より良いソリューション)を見つけました。