struts2中使用freemarker 生成静态页面 (二)

2014-11-24 11:01:04 · 作者: · 浏览: 1
;
writer.close();
}
}

package util;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Locale;
import java.util.Map;
import org.apache.struts2.ServletActionContext;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class CreatHtml {
public void init(String ftl, String htmlName, Map map) throws IOException,TemplateException {
// 创建Configuration对象
Configuration cfg = new Configuration();
// 设置FreeMarker的模版文件位置
cfg.setServletContextForTemplateLoading(ServletActionContext.getServletContext(), "templates");
cfg.setEncoding(Locale.getDefault(), "utf-8");


// 创建Template对象
Template template = cfg.getTemplate(ftl);
template.setEncoding("utf-8");


// 生成静态页面
String path = ServletActionContext.getServletContext().getRealPath("/");
File fileName = new java.io.File(path + htmlName);
Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "utf-8"));
template.process(map, writer);
writer.flush();
writer.close();
}
}
7.创建Action文件Struts2.java 具体内容如下:


[java]
package org;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import util.CreatHtml;
import com.opensymphony.xwork2.ActionSupport;
public class Struts2 extends ActionSupport {
private String url;
private List list;

public String execute() throws Exception {
CreatHtml creatHtml = new CreatHtml();
list = new ArrayList();
User user = null;
for (int i = 0; i < 10; i++) {
user = new User();
user.setId(i);
user.setName("name" + i);
user.setAge(i + i);
list.add(user);
}
Map> map = new HashMap>();
map.put("userList", list);
String fileName = "user.html";
String ftl = "temalate.ftl";
creatHtml.init(ftl, fileName, map);
// url作为struts.xml中的result的视图返回页面
this.url = fileName;
return SUCCESS;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
private static final long serialVersionUID = 1L;
}

package org;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import util.CreatHtml;
import com.opensymphony.xwork2.ActionSupport;
public class Struts2 extends ActionSupport {
private String url;
private List list;

public String execute() throws Exception {
CreatHtml creatHtml = new CreatHtml();
list = new ArrayList();
User user = null;
for (int i = 0; i < 10; i++) {
user = new User();
user.setId(i);
user.setName("name" + i);
user.setAge(i + i);
list.add(user);
}
Map> map = new HashMap>();
map.put("userList", list);
String fileName = "user.html";
String ftl = "temalate.ftl";
creatHtml.init(ftl, fileName, map);
// url作为struts.xml中的result的视图返回页面
this.url = fileName;
return SUCCESS;
}
public List getList() {
return list;
}
public void setList(List list) {
this