struts2+freemarker 生成静态页面
来源:互联网 发布:ip的网络号和主机号 编辑:程序博客网 时间:2024/05/20 03:42
struts2+freemarker 生成静态页面
1.创建项目
2.导入struts2的相关jar文件
3.在web.xml中配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>MyFreemark</display-name>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>MyFreemark</display-name>
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4.创建struts.xml文件,且内容如下:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!--- Add packages here -->
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="GBK" />
<package name="default" namespace="/" extends="struts-default">
<action name="list" class="com.zsw.action.ListAction">
<result type="redirect">/${msg}</result>
</action>
</package>
</struts>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!--- Add packages here -->
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="GBK" />
<package name="default" namespace="/" extends="struts-default">
<action name="list" class="com.zsw.action.ListAction">
<result type="redirect">/${msg}</result>
</action>
</package>
</struts>
5.创建CreateHtml.java用来生成静态页面
package com.zsw.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 CreateHtml {
/**
*
* @param ftl 模板文件
* @param htmlName html文件名称
* @param map map保存数据
* @param relaPath //在这里没有用到
* @throws IOException
* @throws TemplateException
*/
public void init(String ftl, String htmlName, Map map, String relaPath) throws IOException, TemplateException {
//创建Configuration对象
Configuration cfg = new Configuration();
cfg.setServletContextForTemplateLoading(ServletActionContext.getServletContext(), "/");
cfg.setEncoding(Locale.getDefault(), "gbk");
//创建Template对象
Template template = cfg.getTemplate(ftl);
template.setEncoding("gbk");
//生成静态页面
String path = ServletActionContext.getServletContext().getRealPath("/");
File fileName = new File(path + htmlName);
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "gbk"));
template.process(map, out);
out.flush();
out.close();
}
}
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 CreateHtml {
/**
*
* @param ftl 模板文件
* @param htmlName html文件名称
* @param map map保存数据
* @param relaPath //在这里没有用到
* @throws IOException
* @throws TemplateException
*/
public void init(String ftl, String htmlName, Map map, String relaPath) throws IOException, TemplateException {
//创建Configuration对象
Configuration cfg = new Configuration();
cfg.setServletContextForTemplateLoading(ServletActionContext.getServletContext(), "/");
cfg.setEncoding(Locale.getDefault(), "gbk");
//创建Template对象
Template template = cfg.getTemplate(ftl);
template.setEncoding("gbk");
//生成静态页面
String path = ServletActionContext.getServletContext().getRealPath("/");
File fileName = new File(path + htmlName);
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "gbk"));
template.process(map, out);
out.flush();
out.close();
}
}
6.创建Action文件ListAction.java,如下:
package com.zsw.action;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
import com.zsw.util.CreateHtml;
import com.zsw.vo.Person;
import freemarker.template.TemplateException;
public class ListAction extends ActionSupport {
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String execute() {
CreateHtml createHtml = new CreateHtml();
List<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 5; i++) {
Person p = new Person();
p.setId(i);
p.setName("a" + "1");
p.setAge("5");
p.setSex("man");
persons.add(p);
}
Map<String, List<Person>> map = new HashMap<String, List<Person>>();
map.put("personlist", persons);
String htmlName = "personlist.html";
String ftl = "person.ftl";
String relaPath = "index.jsp";
try {
createHtml.init(ftl, htmlName, map, relaPath);
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
this.msg = htmlName;
return SUCCESS;
}
}
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
import com.zsw.util.CreateHtml;
import com.zsw.vo.Person;
import freemarker.template.TemplateException;
public class ListAction extends ActionSupport {
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String execute() {
CreateHtml createHtml = new CreateHtml();
List<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 5; i++) {
Person p = new Person();
p.setId(i);
p.setName("a" + "1");
p.setAge("5");
p.setSex("man");
persons.add(p);
}
Map<String, List<Person>> map = new HashMap<String, List<Person>>();
map.put("personlist", persons);
String htmlName = "personlist.html";
String ftl = "person.ftl";
String relaPath = "index.jsp";
try {
createHtml.init(ftl, htmlName, map, relaPath);
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
this.msg = htmlName;
return SUCCESS;
}
}
7.创建模板文件person.ftl
<table style="text-align:center;FONT-SIZE: 11pt; WIDTH: 600px; FONT-FAMILY: 宋体; BORDER-COLLAPSE: collapse" borderColor=#3399ff cellSpacing=0 cellPadding=0 align=center border=1>
<tr>
<td><b>编号</b></td>
<td><b>用户名</b></td>
<td><b>密码</b></td>
<td><b>性别</b></td>
<td><b>年龄</b></td>
</tr>
<#list personlist as person>
<tr>
<td>${person.id}</td>
<td>${person.name}</td>
<td>${person.sex}</td>
<td>${person.age}</td>
</tr>
</#list>
</table>
<tr>
<td><b>编号</b></td>
<td><b>用户名</b></td>
<td><b>密码</b></td>
<td><b>性别</b></td>
<td><b>年龄</b></td>
</tr>
<#list personlist as person>
<tr>
<td>${person.id}</td>
<td>${person.name}</td>
<td>${person.sex}</td>
<td>${person.age}</td>
</tr>
</#list>
</table>
8.启动服务器,访问地址:http://localhost:8080/MyFreemark/list
效果图如下:
9.以上例子下载地址如下:
http://download.csdn.net/source/3490291
0 0
- struts2+freemarker 生成静态页面
- struts2+freemarker 生成静态页面
- Struts2整合Freemarker生成静态页面
- struts2和freemarker生成静态页面
- struts2中使用freemarker 生成静态页面
- struts2中使用freemarker 生成静态页面
- struts2中使用freemarker 生成静态页面
- Freemarker生成静态页面
- freemarker生成静态页面
- freemarker生成静态页面
- FreeMarker生成静态页面
- FreeMarker生成静态页面
- 使用freemarker生成静态页面
- 用freemarker生成静态页面
- freemarker之生成静态页面
- 使用freemarker生成静态页面
- Freemarker生成HTML静态页面
- SpringMVC+Freemarker生成静态页面
- 判断系统大小端问题
- xml入门学习笔记
- 5种编写网页的软件介绍(二)
- 创建notification的方法
- cocos2dx3.3开发FlappyBird总结十二:状态层设计
- struts2+freemarker 生成静态页面
- 陈超众iOS___之浅谈MVC好处与不足
- 十分钟搞清字符集和字符编码
- 【数据结构】——排序算法——1.1、直接插入排序
- WebForms UnobtrusiveValidationMode
- Chinese film faced plywood for formly concrete usage
- mongodb 在yii2 框架中的使用(本人在框架中做了功能扩展,非非官方下载的yii2的操作)
- enum 的高级使用
- Windows 7旗舰版安装Visual Studio 2013 Ultimate的系统必备及注意事项