将velocity模板转换为java字符串

将velocity模板转换为java字符串,java,velocity,Java,Velocity,我想使用Java Mail发送电子邮件,但我想使用velocity模板定义邮件的内容和结构。有没有办法对velocity模板进行转换,生成一个字符串,我可以这样使用它: String html = velocityConversion_or_whatever(); MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(html, "text/html"); 谢谢。Velocity可以将模板渲染成StringWriter,

我想使用Java Mail发送电子邮件,但我想使用velocity模板定义邮件的内容和结构。有没有办法对velocity模板进行转换,生成一个字符串,我可以这样使用它:

String html = velocityConversion_or_whatever();
MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(html, "text/html");

谢谢。

Velocity可以将模板渲染成
StringWriter
,因此从那里可以非常简单地从字符串中提取HTML。假设您已经配置了Velocity引擎,则可以执行以下操作:

Map data = new HashMap();
// Add data to your map here

StringWriter writer = new StringWriter();
VelocityContext velocityContext = new VelocityContext(data);
velocityEngine.mergeTemplate(templateLocation, velocityContext, writer);
String html = writer.toString();

Velociy为此提供了util类:

VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, templateUrl, model);