Struts2  Spring 框架下 Freeer 的模板文件无法取到值
贴下相关代码:public class createStaticHTML {


private static Configuration freeerCfg = new Configuration();

static{
freeerCfg.setServletContextForTemplateLoading(ServletActionContext.getServletContext(), "/WEB-INF/template");
freeerCfg.setEncoding(Locale.getDefault(), "utf-8");
freeerCfg.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
}

public static void createHTML(Map<String,Object> sourcedata,String templatePath,String targetHtmlPath) throws IOException, TemplateException{ try{
Template template = freeerCfg.getTemplate(templatePath,"utf-8");
template.setEncoding("utf-8");

String htmlPath = ServletActionContext.getServletContext().getRealPath("/")+targetHtmlPath;
File htmlFile = new File(htmlPath); Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile), "utf-8"));
        template.process(sourcedata, out);
        out.flush();
        out.close();
}catch (Exception e) {
        e.printStackTrace();
    }
}
}
下面是Action中测试的一个例子public class WelcomeCurtainAction extends ActionSupport {
//private String returnhtmlpath;

  @Override
  public String execute() throws Exception{
  
Map<String,Object> MoodTextData = new HashMap<String,Object>();
TextData.put("title", "aaaaaaaaaaaaa");
TextData.put("context", "bbbbbbbbbbbbbbbbbbbbbbbbb"); //String htmlpath = "testhtml.html";
createStaticHTML.createHTML(TextData,"testhtml.ftl", "testhtml.html");

//this.returnhtmlpath=htmlpath;
return SUCCESS;
    
  
  }
testhtml.FTL 文件 <div id="XXXXX_feature">
  <div id="feature_left">
             <h1>${TextData.title}</h1>
             <p>${TextData.context}</p>
           </div>
          </div>
  
运行后 生成的testhtml.html文件   ${TextData.title}   ${TextData.context} 取不到值,望大家帮忙看下

解决方案 »

  1.   


        <div id="XXXXX_feature">
          <div id="feature_left">
                 <h1>${TextData.title}</h1>
                 <p>${TextData.context}</p>
               </div>
              </div>删除红色部分试试
      

  2.   

       
        Map<String,Object> MoodTextData = new HashMap<String,Object>();
        TextData.put("title", "aaaaaaaaaaaaa");
        TextData.put("context", "bbbbbbbbbbbbbbbbbbbbbbbbb");    //String htmlpath = "testhtml.html";
        createStaticHTML.createHTML(TextData,"testhtml.ftl", "testhtml.html");
            
    你上面是MoodTextData  后面怎么就变成TextData了啊,你改下应该就可以了,不过你编辑的时候不可能不报错啊!!!