使用freemarker的生成html到电子邮件中发送,是他们无论如何使用呈现的JSP页面呢?(Us

2019-09-16 15:32发布

电子邮件正在使用Spring和Java邮件发送者。

是他们反正我可以用一个正常的JSP视图和JSTL标签 - 我不想学习标签/语法的另一个一堆?

目前我的代码如下所示:

StringBuffer content = new StringBuffer();
Configuration configuration = freeMarkerConfigurer.getConfiguration();
String templateName = "vslEmail.ftl";
Map<String, String> templateVars = new HashMap<String, String>();
templateVars.put("firstName", "john");
templateVars.put("surname", "doe");
try {
  content.append(FreeMarkerTemplateUtils.processTemplateIntoString(configuration.getTemplate(ftlName), tempalteVars));
}
catch (Exception e) {
  // handle
}
// content.append("<br>Test data");
sendMime(defaultEmailAddress, subject, content.toString());

我只是喜欢引用的JSP,而不是FTL的?

Answer 1:

您可以explicite呈现一个jsp,但你需要一个Request对象!

request.getRequestDispatcher("/WEB-INF/mai/myMail.jsp").include(request, response);

另见本StackOverflow的答案 (和其他回答这个问题)。 它示出了示例来创建(假)的响应对象,允许你处理创建的HTML。



Answer 2:

你总是可以激发关闭一个JSP的请求坐在自己的Web服务器上,啜了响应,并将其放入您的电子邮件。 这是一个有点哈克,而且必须小心,以确保你没有打开这些网页外面的世界,但它的工作。



文章来源: Using freemarker to generate html to send within an e-mail, is their anyway to use a rendered jsp page instead?