建立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
相关推荐
标题中的“很轻的,Servlet + Freemarker 组合体,没有那么硬~”暗示了这是一个关于使用Servlet和Freemarker技术构建轻量级Web应用的讨论。Servlet是Java Web开发中的核心组件,用于处理HTTP请求和响应,而Freemarker...
struts2+spring2.5+hibernate3.2 + freemarker 全新功能实现的增删改查+freemarker 摸版 struts2 的方式自己去看简单。 spring2.5 是用注释来注入 hibernate3.2 是用ejb3注解映射关系 hibernate3 +个属性可以自动...
Struts2、Hibernate和FreeMarker是Java开发领域中常见的三个开源框架,它们分别在MVC(Model-View-Controller)架构的不同层面发挥着关键作用。这个"struts2+hibernate+freemarker"项目实例是将这三个框架集成到一起...
基于SpringBoot+freemarker实现的人事管理系统分为七大模块:绩效考核,招聘管理,档案管理,工资管理,考勤管理,培训管理,系统管理。本系统最大特色是有强大和灵活的权限控制功能,所有菜单,按钮功能均可由管理...
1、基于springboot+mvc+freemarker+aop实现校友信息管理系统源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考...
本篇将深入探讨如何使用`JFinal`、`Maven`和`FreeMarker`构建一个入门级的Web应用程序。首先,我们要理解这三个关键组件的作用和它们之间的协同工作方式。 **JFinal** 是一个基于Java的轻量级Web开发框架,其核心...
基于SpringBoot+LayUI+Freemarker+Mybatis的通用后台管理系统源码.zip 完整代码,可运行 。 项目描述 本系统是基于SpringBoot + 通用Mapper + LayUI + freemarker 而开发的,大体功能模块如下: 网站管理 角色管理 ...
基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker...
MySQL负责数据存储,JDBC和Servlet处理数据交互,Freemarker和ArtTemplate构建用户界面,jQuery增强用户体验,而JSON和百度地图API则提供了数据传输和地图服务。这个系统展示了Web开发中的典型技术栈,为类似应用...
在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...
java web开发,jsp,servlet框架,mysql,适合个人研究学习,用于毕业设计,课程设计等 java web开发,jsp,servlet框架,mysql,适合个人研究学习,用于毕业设计,课程设计等 java web开发,jsp,servlet框架,...
maven管理项目+springmvc+spring+hibernate+freemarker 集成框架。其中注解格式清晰,hibernate进行了代码封装,对开发效率有了提高,对异常进行了封装。freemarker也有优化,参考common包下。对日期工具类有各种...
1、基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统源码(适合快速迭代开发).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计...
**Maven+SpringMVC+Freemarker Demo详解** 在Web开发中,Maven、SpringMVC和Freemarker是三个关键的组件,它们分别负责构建管理、业务逻辑处理和视图展示。这个"Maven+SpringMVC+Freemarker Demo"是一个基础的Web...
基于SpringBoot+FreeMarker+MyBatis+ExtJs实现的一个通用后台管理系统,界面美观,适合快速迭代开发 项目说明 技术栈: SpringBoot MyBatis Redis MySQL FreeMarker ExtJs 基于SpringBoot+FreeMarker+MyBatis+...
SpringBoot版本的SpringMVC+Freemarker上传案例,地址是localhost:8888/photo/index进入上传页面,默认是三个文件,自己可以屏蔽两个文件就是单个文件的状态了,首先在电脑的D盘新建一个upload的文件夹,...
本源码实例只供学习。。 请一并下载webwork+spring+hibernate+freemarker (A)demo_lib 配合才能使用(此为项目的lib包。。) 请打开mark.txt参考操作
一、项目运行 环境配置: Jdk1.8 + Tomcat8.0 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) ...Springboot + SpringMVC + MyBatis + FreeMarker + JavaScript + JQuery + Ajax + maven等等。