我想使用 Freemarker 在 Struts2 应用程序中生成电子邮件。
由于我也在使用 Freemarker 来实现我的观点,因此我想“重用”相同的配置。
使用 Spring 做同样的事情已经有一个类似的问题。在 Spring 应用程序中从 FreeMarker 获取模板文本 https://stackoverflow.com/questions/230763/getting-template-text-from-freemarker-in-spring-app
我不知道从哪里开始。
我正在查看的代码org.apache.struts2.components.template.FreemarkerTemplateEngine。
我应该复制它吗?或者简单地调用它?我不清楚如何取回渲染的文本。
像这样的事情应该做,
import com.opensymphony.xwork2.ActionSupport;
import freemarker.template.Configuration;
import freemarker.template.Template;
import java.io.StringWriter;
import javax.servlet.ServletContext;
import org.apache.struts2.util.ServletContextAware;
import org.apache.struts2.views.freemarker.FreemarkerManager;
public class DummyAction extends ActionSupport implements ServletContextAware
{
private static final long serialVersionUID = 1L;
private ServletContext context;
public String execute()
{
try
{
//retrive freemarker config used by struts2 for freemarker results
FreemarkerManager manager = new FreemarkerManager();
Configuration cfg = manager.getConfiguration(context);
Template template = cfg.getTemplate("your-template");
//your data model
Object root = new Object();
//process template
StringWriter out = new StringWriter();
template.process(new Object(), out);
String renderedText= out.toString();
System.out.println(renderedText);
} catch (Exception e)
{
e.printStackTrace();
}
//do work
return "success?";
}
public void setServletContext(ServletContext context)
{
this.context = context;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)