建立web项目,拷贝freemarker的jar文件到类路径,其他步骤略。
首先配置web.xml,添加freemarker解析的Servlet配置,内容如下
- <servlet>
- <servlet-name>freemarker</servlet-name>
- <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
- <init-param>
- <param-name>TemplatePath</param-name>
- <param-value>/</param-value>
- </init-param>
- <init-param>
- <param-name>NoCache</param-name>
- <param-value>true</param-value>
- </init-param>
- <init-param>
- <param-name>ContentType</param-name>
- <param-value>text/html;charset=UTF-8</param-value>
- </init-param>
- <init-param>
- <param-name>template_update_delay</param-name>
- <param-value>0</param-value>
- </init-param>
- <init-param>
- <param-name>default_encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- <init-param>
- <param-name>number_format</param-name>
- <param-value>0.##########</param-value>
- </init-param>
- </servlet>
- <servlet-mapping>
- <servlet-name>freemarker</servlet-name>
- <url-pattern>*.ftl</url-pattern>
- </servlet-mapping>
添加一个测试用的Servlet,代码如下:
- package test.servlet;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Map;
- import java.util.Set;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class TestFreemarker extends HttpServlet {
- private static final long serialVersionUID = 1L;
- @Override
- protected void service(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException {
- String strValue = "this is String";
- Date myDate = new Date();
- Object[] objectArray = new Object[]{1,"str",1.2};
- Set<Object> setData = new HashSet<Object>();
- setData.add("dataValue1");
- setData.add("dataValue2");
- setData.add("dataValue3");
- List<String> strList = new ArrayList<String>();
- strList.add("字符串1");
- strList.add("字符串2");
- strList.add("字符串3");
- Map<String,Object> map = new HashMap<String, Object>();
- map.put("key1", "value1");
- map.put("key2", "value2");
- map.put("key3", "value3");
- req.setAttribute("strValue", strValue);
- req.setAttribute("objectArray", objectArray);
- req.setAttribute("strList", strList);
- req.setAttribute("map", map);
- req.setAttribute("myDate", myDate);
- req.setAttribute("setData", setData);
- req.getRequestDispatcher("/WEB-INF/view/freemarker/test.ftl").forward(req, resp);
- }
- }
配置此Servlet到web.xml中,增加如下内容到web.xml文件中:
- <servlet>
- <servlet-name>test</servlet-name>
- <servlet-class>test.servlet.TestFreemarker</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>test</servlet-name>
- <url-pattern>/test</url-pattern>
- </servlet-mapping>
在/WEB-INF/view/freemarker目录下建立文件test.ftl,内容如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr">
- <head>
- <title>test!</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
- </head>
- <body>
- <div>
- 直接显示字符串<br />
- String:${strValue}<br/>
- <hr/>
- </div>
- <div>
- 显示日期
- date:${myDate?date}<br/>
- <hr/>
- 显示时间
- time:${myDate?time}<br/>
- <hr/>
- 显示时间戳
- datetime:${myDate?datetime}<br/>
- <hr/>
- </div>
- <div>
- 访问对象数组
- ObjectArray:
- ${objectArray[0]},${objectArray[1]},${objectArray[2]}
- <br />
- <hr/>
- </div>
- <div>
- 遍历Set中的元素
- SetData:<br />
- <#list setData as value>
- ${value}
- </#list>
- <hr/>
- </div>
- <div>
- 遍历List中的元素
- strList:<br/>
- <#list strList as strValue >
- <#if strValue_index == 0>
- ${strValue} is first element
- <#elseif !strValue_has_next>
- ${strValue} is last element
- <#else>
- ${strValue}
- </#if>
- <br />
- </#list>
- <hr/>
- </div>
- <div>
- 获取map中的值
- <br/>
- map:
- key1=${map.key1},key2=${map.key2},key3=${map.key3}
- <hr/>
- </div>
- <#include "foot.html">
- </body>
- </html>
模板中包含的foot.html,在和test.ftl相同的目录下,文件内容如下
- <div style="margin-top: 50px;text-align: center;font-size: 12px">
- <hr />
- this is foot
- </div>
运行此项目访问/test路径,输出内容如下:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-CN" dir="ltr">
- <head>
- <title>test!</title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
- </head>
- <body>
- <div>
- 直接显示字符串<br />
- String:this is String<br/>
- <hr/>
- </div>
- <div>
- 显示日期
- date:2011-3-18<br/>
- <hr/>
- 显示时间
- time:17:21:44<br/>
- <hr/>
- 显示时间戳
- datetime:2011-3-18 17:21:44<br/>
- <hr/>
- </div>
- <div>
- 访问对象数组
- ObjectArray:
- 1,str,1.2
- <br />
- <hr/>
- </div>
- <div>
- 遍历Set中的元素
- SetData:<br />
- dataValue2
- dataValue1
- dataValue3
- <hr/>
- </div>
- <div>
- 遍历List中的元素
- strList:<br/>
- 字符串1 is first element
- <br />
- 字符串2
- <br />
- 字符串3 is last element
- <br />
- <hr/>
- </div>
- <div>
- 获取map中的值
- <br/>
- map:
- key1=value1,key2=value2,key3=value3
- <hr/>
- </div>
- <div style="margin-top: 50px;text-align: center;font-size: 12px">
- <hr />
- this is foot
- </div></body>
- </html>
freemarker的list指令,不能遍历如Object[]类型的对象数组。但可以遍历List和Set
相关推荐
公交线路搜索系统,mysql+jdbc+servlet+freemarker+json+jquery+arttemplate+百度地图api
struts2+spring2.5+hibernate3.2 + freemarker 全新功能实现的增删改查+freemarker 摸版 struts2 的方式自己去看简单。 spring2.5 是用注释来注入 hibernate3.2 是用ejb3注解映射关系 hibernate3 +个属性可以自动...
自己写的一个框架例子,公司也在用,框架是struts2+hibernate+freemarker
JFinal+Maven+FreeMarker入门实例 JFinal这个框架确实不错,受够了Struts 2
1、基于springboot+mvc+freemarker+aop实现校友信息管理系统源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考...
基于SpringBoot+LayUI+Freemarker+Mybatis的通用后台管理系统源码.zip 完整代码,可运行 。 项目描述 本系统是基于SpringBoot + 通用Mapper + LayUI + freemarker 而开发的,大体功能模块如下: 网站管理 角色管理 ...
最简单的Maven+SpringMVC+Freemarker入门Demo
基于SpringBoot+freemarker实现的人事管理系统分为七大模块:绩效考核,招聘管理,档案管理,工资管理,考勤管理,培训管理,系统管理。本系统最大特色是有强大和灵活的权限控制功能,所有菜单,按钮功能均可由管理...
基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker...
一个基于SpringMVC+Hibernate+Freemarker 的干净的框架
Spring + hibernate + webwork + freemarker 整合配置
java web开发,jsp,servlet框架,mysql,适合个人研究学习,用于毕业设计,课程设计等 java web开发,jsp,servlet框架,mysql,适合个人研究学习,用于毕业设计,课程设计等 java web开发,jsp,servlet框架,...
maven管理项目+springmvc+spring+hibernate+freemarker 集成框架。其中注解格式清晰,hibernate进行了代码封装,对开发效率有了提高,对异常进行了封装。freemarker也有优化,参考common包下。对日期工具类有各种...
Spring boot + Mybatis + Freemarker
基础框架,可满足开发需要
dubbo+zookeeper+SpringMVC+Spring+Mybatis+Freemarker集成
1、基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统源码(适合快速迭代开发).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计...
Spring mvc+hibernate+freemarker(开源项目)