Servlet整合FreeMarker
来源:互联网 发布:天津哪里有mac专柜 编辑:程序博客网 时间:2024/05/22 15:58
本例旨在演示Servlet整合FreeMarker的功能,具体的操作步骤下面具体介绍,FreeMarker.jar下载地址。
第一步:创建Web项目(本例使用的是Eclipse),FreeMarkerWeb。
第二步:创建Blog对象,用于封装数据。
public class Bolg {private String title; // 博客标题private Date date; // 创建日期private String content; // 博客内容public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}}
第三步:创建用于生成List<Object>的数据工具DataUtils。
public class DataUtils {/** * 创建博客列表信息列表 * @return */public static List builtDataList() {List list = new ArrayList();for(int i=1;i<10;i++){Bolg bolg = new Bolg();bolg.setTitle("标题"+i);bolg.setDate(new Date());bolg.setContent("内容文本。。。。。。");list.add(bolg);}return list;}}
第四步:构建Freemarker中需要使用的Configuration。
public class FreeMarkerUtils {private static Configuration configuration;/** * 构建Configuration * 在整个应用的生命周期中,这个后工作你应该只做一次 创建和调整配置 * @return */private static Configuration bulitConfiguration() {if(null==configuration){configuration = new Configuration();//构建 \WEB-INF\ftl 的文件路径String path = FreeMarkerUtils.class.getResource("/").getPath();path = path.substring(1, path.indexOf("classes"));File ftlPathDir = new File(path+File.separator+"ftl");try {configuration.setDirectoryForTemplateLoading(ftlPathDir);configuration.setObjectWrapper(new DefaultObjectWrapper());} catch (IOException e) {e.printStackTrace();}return configuration;}return configuration;}/** * 获取模板Template * @param ftlName * @return */public static Template getTemplate(String ftlName){try {Template template = bulitConfiguration().getTemplate(ftlName);return template;} catch (IOException e) {e.printStackTrace();}return null;}}
第五步:创建Servlet(FreeMarkerServlet),并在web.xml配置FreeMarkerServlet。本例使用了Date对象,所以需要进行日期转换。
${parameters.fieldDate?date} //标准日期转日期字符串
${parameters.fieldDate?datetime} //标准日期转日期+时间字符串
${parameters.fieldDate?string("yyyy-MM-ddHH:mm:ss")} //标准日期转自定格式 字符串
/** * Servlet implementation class FreeMarkerServlet */@WebServlet("/FreeMarkerServlet")public class FreeMarkerServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {/* 在整个应用的生命周期中,这个工作可以执行多次 */// 获取或创建模板Template template = FreeMarkerUtils.getTemplate("listObject.ftl");// 创建数据模型Map root = new HashMap();root.put("user", "Big Joe");Map latest = new HashMap();root.put("lastVisit", latest);latest.put("date", new Date());latest.put("ip", "green mouse");root.put("bolgs", DataUtils.builtDataList());/* 将模板和数据模型合并 */Writer out = new OutputStreamWriter(System.out);try {template.process(root, out);} catch (TemplateException e) {e.printStackTrace();}out.flush();System.out.println("输出结束。。。。。。");}protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}
web.xml
<servlet> <servlet-name>freeMarkerServlet</servlet-name><servlet-class>com.mahaochen.freemarker.servlet.FreeMarkerServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>freeMarkerServlet</servlet-name> <url-pattern>/servlet/freeMarkerServlet</url-pattern> </servlet-mapping>
第六步:由于FreeMarker需要ftl(模板文件),在WEB-INF/ftl创建listObject.ftl。
<html><head> <title>Welcome!</title></head><body> <h1>Welcome ${user}!</h1> <p>You Last Visit:</p> <hr /> ${lastVisit.date?date}<br /> ${lastVisit.ip} <br /> <hr /> <table> <#list bolgs as bolg> <tr> <td>${bolg.title}</td> <td>${bolg.date?string("yyyy-MM-dd HH:mm:ss")}</td> <td>${bolg.content}</td> </tr> </#list> </table></body></html>
1 0
- Servlet整合FreeMarker
- freemarker+servlet整合(三)
- freemarker-2.3.16整合servlet
- Spring Boot整合模板引擎freemarker以及servlet
- Struts2整合FreeMarker实例
- 整合Freemarker的方法
- FreeMarker整合Spring 3
- Struts2 Freemarker 整合
- FreeMarker与SpringMVC整合
- FreeMarker整合Spring 3
- FreeMarker与SpringMVC整合
- FREEMARKER与SPRINGMVC整合
- FreeMarker整合Spring 3
- freemarker与springmvc整合
- spring+struts2+freemarker整合
- FreeMarker与SpringMVC整合
- FreeMarker整合Struts2
- Spring MVC 整合 Freemarker
- Java 数据结构之数组的操作三:实现各种排序方法
- 练习2-4 重新编写函数squeeze(s1,s2),将字符串s1中任何与字符串s2中匹配的字符都删除
- C#BitVector32结构操作说明
- sublime text3 快捷键
- C语言宏
- Servlet整合FreeMarker
- 十五周项目1
- nginx1.81 使用技巧
- javascript----概念
- JavaAPI之AnnotatedElement接口
- 笔记十:复制构造函数、深拷贝、浅拷贝
- Maven (POM+约定+生命周期 + 依赖) 战略分析
- c++实验7-函数
- Android 个人博客客户端——My CSDN 的实现(5)