我正在使用amazon java sdk发送电子邮件。我必须发送html模板作为邮件。我为此编写了一个程序,它工作正常。但现在我将整个html代码存储在一个String中。但每当我需要编辑模板时,我必须编辑程序(我的意思是String变量)。此外,我必须在html代码中注意像“\ ...等”这样的特殊字符。请建议我一个优雅的方法来解决这个问题。
答案 0 :(得分:2)
使用模板引擎并将模板外部存储在类路径或文件系统中。这是一个可以帮助您选择一个问题的问题:https://stackoverflow.com/questions/2381619/best-template-engine-in-java
答案 1 :(得分:1)
使用Apache Common Lang api's StringEscapeUtils#escapeHtml
,它使用HTML实体转义String中的字符并返回新的转义String
,如果输入null string
则返回null。
例如:
"US" & "UK"
变为:
"US" & "UK".
答案 2 :(得分:1)
检查Apache Velocity Project。您可以为多个事项创建模板。从它的user-guide page
开始Velocity可用于生成网页,SQL,PostScript和模板的其他输出。它 可以用作生成源代码和报告的独立实用程序,也可以用作 其他系统的集成组件。
您可以使用VTL(速度模板语言)。上面链接中的一个例子
<HTML>
<BODY>
Hello $customer.Name!
<table>
#foreach( $mud in $mudsOnSpecial )
#if ( $customer.hasPurchased($mud) )
<tr>
<td>
$flogger.getPromo( $mud )
</td>
</tr>
#end
#end
</table>
答案 3 :(得分:0)
更好,最简单的方法是使用简单的文件读取操作逐行读取html文件,并将每行附加到单个String。我还发现this解决方案(如果您准备再为项目添加一个库文件,也是一个更好的解决方案)。