模板式生成 JSP页面步骤
2019-04-14 15:22发布
生成海报
一。准备工作
1.项目中必须有 spring-webmvc-3.2.2.RELEASE.jar 架包。因为等会会用到 里面的 FreeMarkerConfigurer 类。
2.需要在 spring-mvc.xml 文件中配置如下信息:
class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
0
UTF-8
UTF-8
zh_CN
true,false
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd
HH:mm:ss
0.######
true
3.创建html模板。
个人信息
姓名:${name}
昵称:${nickname}
地区:${area}
性别:${sex}
年龄:${age}
二。代码编写
1.设置响应的格式
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
2.获取PrintWriter流,(用来在客户端输出)
PrintWriter writer = null;
writer = response.getWriter();
3.创建一个模板对象
Template tpl2 = null;
4.创建一个 StringWriter 类 ,代表一个字符流,可以用其回收在字符串缓冲区中的输出,来构造字符串。
StringWriter out = null;
5.运用freemarkerConfig 类 制定模板路径生成模板,并赋值给模板对象 Template tpl2
Configuration config = freemarkerConfig.getConfiguration();
此处需要在上方导入在spring-mvc.xml 中配置好的类。
@Autowired
protected FreeMarkerConfigurer freemarkerConfig;
tpl2 = config.getTemplate("/tpl/MyHtml.html");
6.创建Map 用来放入模板中需要的值,此处自己按需求灵活处理。
Map map = new HashMap();
map.put("name", "***");
map.put("nickname", "Hunter");
map.put("area", "上海");
map.put("sex", "男");
map.put("age", 25);
Map rootMap = new HashMap();
rootMap.putAll(map);
7.新建StringWriter类 ,代表一个字符流,可以用其回收再字符串缓冲区中的输出,来构造字符串。
out = new StringWriter();
8.将数据模型和模板合并。
tpl2.process(rootMap, out);
9.往页面返回 构建的模板字符串
writer.write(out.toString());
此致就能在页面灵活输出你想要的页面了。
简易代码如下:
package cn.com.hunter.controller;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import freemarker.template.Configuration;
import freemarker.template.Template;
@Controller
@RequestMapping(value="/Template")
public class TemplateController {
@Autowired
protected FreeMarkerConfigurer freemarkerConfig;
@RequestMapping(value="/Template.action")
public void TemplateWtite(HttpServletRequest request,HttpServletResponse response){
PrintWriter writer = null;
try {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html; charset=utf-8");
writer = response.getWriter();
Template tpl2 = null;
StringWriter out = null;
Configuration config = freemarkerConfig.getConfiguration();
Map map = new HashMap();
map.put("name", "红涛");
map.put("nickname", "Hunter");
map.put("area", "上海");
map.put("sex", "男");
map.put("age", 25);
Map rootMap = new HashMap();
rootMap.putAll(map);
out = new StringWriter();
tpl2 = config.getTemplate("/tpl/MyHtml.html");
tpl2.process(rootMap, out);
writer.write(out.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (writer != null)
writer.close();
}
}
}
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮