gpt4 book ai didi

java - 从 Struts2 应用程序中的 FreeMarker 获取模板文本

转载 作者:行者123 更新时间:2023-12-02 08:28:30 25 4
gpt4 key购买 nike

我想使用 Freemarker 在 Struts2 应用程序中生成电子邮件。由于我的 View 也使用 Freemarker,因此我想“重用”相同的配置。

已经有一个类似的问题用 Spring 做同样的事情。 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;
}
}

关于java - 从 Struts2 应用程序中的 FreeMarker 获取模板文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3985373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com