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} 取不到值,望大家帮忙看下
贴下相关代码: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} 取不到值,望大家帮忙看下
<div id="XXXXX_feature">
<div id="feature_left">
<h1>${TextData.title}</h1>
<p>${TextData.context}</p>
</div>
</div>删除红色部分试试
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了啊,你改下应该就可以了,不过你编辑的时候不可能不报错啊!!!