【问题标题】:Getting template text from FreeMarker in Struts2 app在 Struts2 应用程序中从 FreeMarker 获取模板文本
【发布时间】:2011-04-28 11:23:30
【问题描述】:

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

对于使用 Spring 做同样的事情,已经有一个类似的问题。 Getting template text from FreeMarker in Spring app

我不知道从哪里开始。

我在看org.apache.struts2.components.template.FreemarkerTemplateEngine的代码。 我应该复制它吗?或者干脆叫它?我不清楚如何取回呈现的文本。

【问题讨论】:

    标签: java templates struts2 freemarker


    【解决方案1】:

    应该这样做,

    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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2010-09-18
      • 1970-01-01
      • 2015-02-27
      • 2012-10-13
      • 2013-04-11
      • 2011-01-18
      • 2019-10-21
      • 2021-10-31
      • 2013-02-24
      相关资源
      最近更新 更多