FreeMaker第一步
转载请注明:来自http://blog.csdn.net/M_ChangGong/ 作者:张燕广
FreeMarker是什么?
FreeMarker是一个”模板引擎”,是一个基于模板技术的生成文本输出的一个通用工具,是一个JAVA的包,是一个JAVA程序员可以使用的类库。
FreeMarker不是什么?
FreeMarker不是一个对最终用户的应用程序.,不是一个WEB应用程序框架.。
FreeMarker能做什么?
FreeMarker是设计为可以生成WEB PAGES.它是基于SERVLET遵循MVC模式的致力于降低、分离网页设计人员和程序员的耦合。
作为WEB应用框架的一个组件,FREEMARKER引擎本身并不了解HTTP或者SERVLETS,它只不过是利用模板加上数据生成文本页面而已,也可以在FreeMarker模板中使用JSP标签。
下面编写一个简单的FreeMarker例子。
1. 创建一个web工程,在类路径下加入FreeMarker的jar文件:freemarker.jar。
Freemarker下载地址为:http://www.freemarker.org/index.html
2. 编写bean类Book,代码如下:
view plain
package com.zyg.fm.bean;
import java.util.Date;
public class Book {
private String bookId;
private String bookName;
private String author;
private Double price;
private Date publishDate;
public String getBookId() {
return bookId;
}
public void setBookId(String bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public Date getPublishDate() {
return publishDate;
}
public void setPublishDate(Date publishDate) {
this.publishDate = publishDate;
}
}
3. 编写servlet,代码如下:
view plain
package com.zyg.fm.servlet;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.zyg.fm.bean.Book;
import freemarker.template.*;
/**
* @author 张燕广
*/
public class BookServlet extends HttpServlet
{
private Configuration cfg;
public void init()
{
//初始化FreeMarker配置
//创建一个Configuration实例
cfg = new Configuration();
//设置FreeMarker模版文件的位置
cfg.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates");
}
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//获取数据
List<Book> bookList = getBookList();
Map map = new HashMap();
map.put("bookList", bookList);
map.put("message","您好,张燕广");
//取得模版文件
Template t = cfg.getTemplate("bookList.ftl");
// 开始准备生成输出
// 使用模版文件的charset作为本页面的charset
System.out.println(t.getEncoding());
response.setContentType("text/html; charset="+t.getEncoding());
Writer out = response.getWriter();
//合并数据模型和模版,并将结果输出到out中
try
{
t.process(map, out);
}
catch (TemplateException e)
{
throw new ServletException("emplate模版中出现错误!", e);
}
}
/**
* 模拟从数据库获取数据的操作
* @return
*/
private List<Book> getBookList(){
List<Book> bookList = new ArrayList<Book>();
Book book = null;
for(int i=0;i<10;i++){
book = new Book();
book.setBookId(String.valueOf(i+1));
book.setBookName("FreeMarker学习之"+(i+1));
book.setAuthor("changong"+(i+1));
book.setPrice(new Double(100/(i+1)));
book.setPublishDate(new Date());
bookList.add(book);
}
return bookList;
}
}
4.在WEB-INF下创建存放FreeMarker文件的目录:templates,在该目录下载FreeMarker模板文件:bookList.ftl,其代码如下:
view plain
<html>
<head>
<title>书籍列表</title>
</head>
<body>
<center>
<font color="blue">
${message}! 这是FreeMarker学习小例子!!! <br>
<hr>
<h1>
书籍列表
</h1>
</font>
</center>
<table border="1" width="100%" align="center">
<tr align="center">
<td>书号</td>
<td>书名</td>
<td>作者</td>
<td>价格</td>
<td>出版日期</td>
</tr>
<#list bookList as book>
<#if book_index%2==0>
<tr style="color:red" mce_style="color:red" align="center" id="tr_${book_index}">
<#else>
<tr style="color:blue" mce_style="color:blue" align="center" id="tr_${book_index}">
</#if>
<td>${book.bookId}</td>
<td>${book.bookName}</td>
<td>${book.author}</td>
<td>${book.price?string.currency}</td>
<td>${book.publishDate?string("yyyy年MM月dd日")}</td>
</tr>
</#list>
</table>
</body>
</html>
5.修改web.xml文件,修改后的配置代码如下:
view plain
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>book</servlet-name>
<servlet-class>com.zyg.fm.servlet.BookServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>book</servlet-name>
<url-pattern>/book</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
6.访问示例代码,在浏览器地址栏输入http://localhost:8080/fmq/book(fmq为配置的项目虚拟路径)
效果如下图所示:
相关推荐
在这个场景中,我们关注的是一个基于FreeMarker(Freemaker)的Java代码生成器。FreeMarker是一个强大的、轻量级的模板引擎,主要用于生成动态Web内容,但在Java世界里,它也被广泛用于生成源代码、配置文件等静态...
在本示例中,“freemaker简单小例子”可能是指如何在Freemarker模板中插入动态数据并渲染成页面。基本流程包括以下几个步骤: 1. **创建Freemarker模板**:在`.ftl`文件中,你可以定义HTML结构,并使用`${...}`或`...
### Freemaker 入门与深入知识点详解 #### 一、Freemaker简介 Freemaker是一款功能强大的模板引擎,常用于Web应用程序中的动态页面生成。相比于其他模板引擎如Velocity,Freemaker支持更为灵活的过程调用、递归处理...
在给定的场景中,`freemaker` 被用来自动化生成常见的Java开发中的各种组件,如`javabean`、`action`、`service`、`dao`以及`struts2`和`spring`的配置文件。这一过程极大地提高了开发效率,减少了重复劳动。 1. ...
【标题】"IDEA+MAVEN+springMVC+mybatis+mySQL+freemaker" 涵盖了现代Web开发中的多个核心组件,这些组件共同构建了一个完整的Java Web应用程序框架。IDEA是IntelliJ IDEA,一个强大的集成开发环境,提供丰富的功能...
在使用freemaker进行开发时,走了很多弯路,这个是最后终于成功后进行的总结,保留一份,并共享给大家
FreeMaker是一款强大的模板引擎,常用于Java环境中动态生成各种类型的文本文件,如HTML、XML、CSV,当然也包括Microsoft Word的DOC格式。本教程将详细讲解如何使用FreeMarker来生成单个及多个Word文档,并将其压缩...
这个"freemaker插件 2.3.18"指的是针对FreeMarker库的一个特定版本2.3.18的插件。这个插件旨在为开发者提供更好的支持和集成环境,使他们能够更高效地利用FreeMarker模板语言来编写和调试模板。 FreeMarker的核心...
在"freemaker简单实现"的项目中,你可能包含以下步骤: 1. **引入依赖**:在你的Maven或Gradle项目中,添加FreeMarker的依赖库。例如,在Maven的pom.xml文件中添加: ```xml <groupId>org.freemarker ...
本资源“freemaker导出word的doc_docx_带动态图片及word转pdf工具类_jar_万能整理汇总.rar”显然是一个集合了多种功能的压缩包,旨在帮助开发者高效地使用Freemarker来处理复杂的Word文档生成任务,并且包含了将Word...
springboot+freemaker+mybatis框架整合的案件后台管理系统,包含案件的excel批量添加,案件跟踪修改,案件每日和每月统计,权限管理(自定义角色)等; 相关技术关键字:springboot freemaker quartz mybatis mysql ...
structs2 + spring2 + hibernate3 +freemaker + Ajax 其中包括Jquery+Ajax等最新技术 实现的完整项目实例,从中可以学得很多技术知识,只此一家别 无二家. 想学好java_Web开发的就赶紧下载吧 (己包含了数据库的文件,...
在本案例中,我们关注的是如何使用Freemaker来导出Word文档。这个"Freemaker导出word亲测可用"的项目,显然是一个实际应用的示例,它提供了便捷的方法来生成Word文档,无需复杂的操作。 Freemaker的核心理念是将...
freemaker作为模板引擎,相当强大,当前的最新版了
FreeMaker IDE是一款专为FreeMarker模板语言设计的集成开发环境(IDE)。FreeMarker是一个开源的、基于Java的模板引擎,常用于Web应用开发,能够与Servlets或JavaServer Pages(JSP)配合工作,用于生成动态内容。它...
FreeMarker是一款强大的、开源的模板引擎,主要用于生成动态HTML、XML或其他格式的文本输出,尤其在Web应用开发中被广泛使用。它与Java语言紧密集成,但模板设计者无需了解Java,只需关注数据和如何展示数据。...
### Freemaker经典_入门开发指南 #### Freemaker简介与特性 Freemaker是一个强大的模板引擎,以其高度灵活性和扩展性著称。相比于其他模板引擎(如Velocity),Freemaker提供了更为丰富的功能,例如强大的过程调用...
FreeMaker API CHM 文件是关于FreeMarker模板引擎的英文版API文档,它是以CHM(Microsoft Compiled HTML Help)格式编译的,这种格式通常用于存储和查看离线帮助文档。FreeMarker是一个开源的Java库,它允许开发者用...