我正在使用 amazon java sdk 发送电子邮件。我必须将 html 模板作为邮件发送。我为此编写了一个程序,它运行良好。但现在我将整个 html 代码存储在一个字符串中。但是每当我需要编辑模板时,我都必须编辑程序(我的意思是字符串变量)。而且我还必须注意该html代码中的特殊字符,如“\ ...等。请建议我一种优雅的方式来解决这个问题。
4 回答
为此使用模板引擎并将模板存储在外部类路径或文件系统中。这是一个可以帮助您选择一个问题:https ://stackoverflow.com/questions/2381619/best-template-engine-in-java
使用Apache Common Lang api StringEscapeUtils#escapeHtml
,它使用 HTML 实体转义字符串中的字符,并返回一个新的转义String
字符,如果输入为 null,则返回 null string
。
例如:
"US" & "UK"
变成:
"US" & "UK".
检查Apache Velocity 项目。您可以为几件事创建模板。从它的用户指南页面
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>
Better and easiest way is reading the html file line by line using simple file reading operation and append this each line to a single String. And also I found this solution (also a better one, if you are ready to add one more library file to your project) from SO.