- 浏览: 121220 次
- 性别:
- 来自: 成都
文章分类
最新评论
刚接触 FreeMarker时,只是简单的了解 FreeMarker的一些概念及工作原理,至于如何使用 FreeMarker还不是非常清楚。随着学习的深入,才渐渐对 FreeMarker有了更深入的理解。本文将从基础应用着手,以 eclipse开发环境为主,分享一个 FreeMarker用例的开发经验。
一、在eclipse中创建FreeMarker模板
在FreeMarker中模板的概念就是:包含一些由${…}包围的特殊代码的文件。这些特殊代码是FreeMaker指令。
FreeMarker 模板以ftl后缀命名 如本文所示的:
user.ftl
${user.userName}
${user.userPassword}
二、在eclipse中创建FreeMarker数据模型
FreeMarker数据模型:存在于计算机内存中的一种结构,由开发人员创建,向模板提供信息。
注意:FreeMarker数据模型不是文本文件。FreeMarker的数据模型是树状结构的。
如本文所示的:
User.java
public class User{
private userName;
private userPassword;
…(省略getter setter方法)
}
User对象的树状模型如:
(root)
|+-user
|+-userName=“张三”
|+-userPassword=“123”
要访问user对象的userName属性,可以通过点操作符号如:user.userName
三、在eclipse中填充FreeMarker数据模型
FreeMarker的根对象使用Map建立的。将创建好的User对象已键-值对得形式封装到Map中如:
Map<?,?> root=new HashMap<?,?>();
root.put(“user”,user);
至此,我们在eclipse中已经完成了大部分的前期准备工作。
FreeMarker工作原理中讲到: 数据+模型=输出,那么我们该如何获得想要的结果呢。
也许你已经想到了,创建FreeMarker的模板引擎,解析模板。步骤如下:
1.创建和配置Configuration对象,Configuration对象实例负责管理FreeMarker模板的路径加载及模板的创建和缓存。通常应用程序的生命周期中只会创建一个Configuration实例。
Configuration config=new Configuration();
config.setDirectoryForTemplateLoading(new File(“templates”));
config.setObjectWrapper(new DefaultObjectWraaper());
2.获取模板实例,即通过Configuration实例获取Template实例,调用getTemplate()方法。
Template template=config.getTemplate(templateName);
3.合并数据模型和模板
通过调用Template实例的process()方法合并数据模型和模板,方法接受一个数据模型的根和一个writer作为参数,将结果输出到Writer。 为简化起见,本例输出到控制台
Writer out=new OutputStreamWriter(System.out);
template.process(root , out);
out.flush();
out.close();
好了,通过上面的讲解,您已经对FreeMarker的应用有了一定的了解。现在开始我们就来创建属于自己的Freemarker用例吧
本例的开发环境: Eclipse3.2+MyEclipse6.0+JDK5.0+FreeMarker
1)在在eclipse中建立一个web工程:freeMakerTest
2)下载FreeMaker工具包,解压后,在lib目录下拷贝freemark.jar到freeMakerTest工程下的lib目录中。
3)在在eclipse中的src目录下创建如下图所示的目录结构:
templates文件夹存放user.ftl文件。
test/frrmrker/uitl/文件夹下存放Freemarker模板引擎 FreeMarkertUtil.java。
test/client文件夹下存放客户端测试类 ClientTest.java ,User.java
4)在eclipse中编写user.ftl文件,FreeMarkertUtil.java, ClientTest.java ,User.java
希望通过本文,对刚开始或即将开始用eclipse展开FreeMarker旅程的朋友有所帮助。
发表评论
-
My Eclipse 编辑jsp页面卡机
2013-04-24 18:21 1340困惑很久的问题今天终于解决了。。 我想大家都遇到编辑JSP页 ... -
eclipse tomcat启动,内存溢出问题
2013-04-12 10:28 906在启动过程中出现内存溢出问题,抛出类似如下异常信息: java ... -
Spring 3.2 ClassMetadataReadingVisitor 错误
2013-04-05 15:54 961错误: java.lang.IncompatibleCla ... -
MyEclipse 9.0 安装freemarker编辑器
2012-12-12 18:08 829freemarker几天前才发布了2.3.17版本,5月21号 ... -
freemarker处理小数和整数共存的情况
2012-12-04 17:06 3262前几天在写程序的时候,利用的freemarker做的表示层。程 ... -
Freemarker中输出数字特别是Long型数字时格式带逗号问题
2012-12-03 10:08 1404Long i=100000000l; Map model ... -
FreeMarker 基础知识 表达式(引用)
2012-11-20 21:24 864表达式是FreeMarker的核心功能,FreeMarker中 ... -
freemarker 判断list记录大于0
2012-08-02 16:02 2768freemarker 判断list记录大于0 用<#if ... -
FreeMarker作为Struts2的视图
2012-07-27 17:09 782Struts使用FreeMarker作为其默认的模板技术,因此 ... -
struts2的struts.properties配置文件详解
2011-11-04 14:40 840struts.action.extensionThe U ... -
freemarker的国际化
2011-10-27 10:58 971起首在servlet中加上加载资料文件的代码 Local ... -
FreeMarker设计指南
2011-10-18 17:57 767(1)模板 + 数据模型 = 输出 FreeMarke ... -
Freemarker中遍历List实例
2011-10-18 13:12 7713Freemarker中如何遍历List ... -
freemarker中使用struts2标签
2011-10-15 16:01 9711.将系统所需的标签库定义文件(也就是tld文件)复制到web ... -
Freemarker源码解析
2011-10-10 17:21 1105FreeMarker 自定义模版文 ... -
struts2.0 标签+ftl标签
2011-10-05 14:58 935直接调用后台方法代码 <PRE class=ftl n ... -
freemarker 里 ?? 和 ? 都是什么意思?
2011-09-19 14:48 1123??是判断对象是否为空,例如:<#if object?? ... -
freemaker中配置文件freemarker.properties详解
2011-09-17 18:52 1213碰到个问题,我使用struts2,前端使用freemaker. ... -
FreeMarker
2011-09-17 18:49 823(1)解决输出中文乱码问题: freemarke ...
相关推荐
本实例将引导你入门Freemarker,解决在Eclipse环境下使用Java编译时可能出现的乱码问题,并确保使用UTF-8编码方式进行处理。 **1. Freemarker简介** Freemarker是一个基于模板的开源Java库,它与Spring MVC、Struts...
这是一个基于eclipse+springmvc+freemarker+注解的入门例子,是一个war包,import到eclipse就应该可以直接运行,但是确保maven环境到存在;我做为一个入门者,是参照了...
描述中的"初级学习摘要+完整实例project"表明这是一个适合初学者的学习资料,包含了一些基础概念的总结以及一个实际的项目案例,可以在Eclipse开发环境中运行。这将帮助初学者通过实践来理解和掌握这三个框架的集成...
**Spring MVC 入门实例详解** Spring MVC 是一个基于 Java 的模型-视图-控制器(MVC)架构,是 Spring 框架的一部分,用于构建Web应用程序。它提供了丰富的功能,如请求处理、数据绑定、异常处理等,使得开发者能够...
在进行FreeMarker的开发指南方面,文档提到5分钟内就能入门,举了如何在springmvc中配置FreeMarker的例子。这包括在web.xml中配置监听器和servlet,以及在dispatcher-servlet.xml中配置FreeMarker的bean,包括...
在这个入门实例中,你可能会经历以下步骤: 1. **环境搭建**:安装JDK、Apache Tomcat服务器,设置好开发环境,如Eclipse或IntelliJ IDEA,以及相关的插件。 2. **创建项目**:使用Maven或者IDE的模板功能创建SSH...
本入门实例将重点介绍如何使用注解来简化Spring MVC的配置,以便快速入门。Eclipse Dynamic Web工程是开发此类应用的常见环境。 首先,我们需要创建一个Eclipse Dynamic Web项目。在Eclipse中,选择"File" -> "New...
这个"struts2入门例子"旨在帮助初学者理解并掌握如何在实际项目中运用Struts2框架。让我们逐步解析这个入门示例中可能包含的关键知识点。 1. **MVC模式**:Struts2遵循MVC设计模式,将业务逻辑、数据处理和用户界面...
标题中的"国产开源java框架JFinal 实例入门源码"表明了这是一个关于使用JFinal框架的入门教程,其中包含了源代码。JFinal是一个由中国开发者开发的轻量级Java Web开发框架,它以简洁、高效著称。这里的"实例入门...
这个入门实例将引导新手逐步了解如何在Java环境中设置和运行一个SpringMVC项目。 首先,让我们深入了解SpringMVC的核心概念: 1. **模型(Model)**:模型层是应用程序的核心业务逻辑部分,负责处理数据。在...
在"Portlet入门小例子"中,我们将探讨如何构建和部署一个基础的portlet。这个过程通常包括以下几个关键步骤: 1. **创建portlet项目**: 开始时,你需要选择一个合适的开发环境,如Eclipse IDE,并安装支持portlet...
在这个入门实例中,我们将深入理解 Spring MVC 的基本概念和工作原理,并通过实际操作来学习如何创建一个简单的应用程序。 1. **模型(Model)**:在 Spring MVC 中,模型对象负责存储应用程序的数据。它们可以是 ...
在这个入门实例中,你将看到以下关键部分: 1. **配置文件**:项目中可能包含`web.xml`,这是部署描述符,用于配置DispatcherServlet。另外,Spring MVC的配置文件(如`spring-servlet.xml`)会定义HandlerMapping...
在`TestStruts2`这个例子中,可能包含一个简单的Action类,处理用户提交的表单数据。同时,它可能有一个对应的JSP页面显示表单,以及一个或多个结果页面。通过配置`struts.xml`,设置Action的映射和结果类型,完成...
在这个快速入门的例子中,我们将深入探讨如何利用Struts2.0搭建一个基本的Web应用。 首先,我们需要了解Struts2.0的核心概念。Struts2是一个基于Model-View-Controller(MVC)设计模式的框架,它提供了处理HTTP请求...
入门例子 **2.1. 项目** 创建一个Struts2项目通常涉及设置一个新的Maven或Eclipse工程,添加Struts2的依赖,并配置Web应用的基本结构。 **2.2. 配置FILTERDISPATCHER过滤器** 在`web.xml`中配置Struts2的...
这个"新手入门Struts2最小框架"可能包含了这些基本组件的实例,你可以通过解压文件并导入Eclipse来学习和分析其结构。文件名"Struts2框架项目(方便)"可能包含了一个简单的Action类、配置文件以及一个或多个JSP页面...
在本项目中,我们将学习如何利用Struts框架实现多文件上传的功能,这对于初学者来说是一个很好的实践项目,能够帮助理解和掌握Struts的核心概念。 首先,了解文件上传的基本原理。在Web应用中,文件上传通常涉及到...