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工程,在类路径下加入FreeMarkerjar文件:freemarker.jar

   Freemarker下载地址为:http://www.freemarker.org/index.html

2.     编写beanBook,代码如下:

 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,代码如下:

 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,其代码如下:

 <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文件,修改后的配置代码如下:

 

<?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/bookfmq为配置的项目虚拟路径)

效果如下图所示:

FreeMaker第一步_第1张图片

 

你可能感兴趣的:(Date,freemarker,String,servlet,Servlets,import)