FreeMarker 由浅入深二 FreeMarker开发环境搭建

第一节:个人理解

FreeMark 用法思路理解:

               在java程序中使用FreeMarker模板就是一个.ftl文本文件,在该文件中使用了一些FreeMarker的特别标记,这些标记会动态显示,或者控制程序输出       如下面的模板文件代码:

        ${name},你好!${msg}

      这里类似于${}的就是动态的内容,称作"插值".


FreeMarker 个人结构图展示:


第二节:FreeeMarker 环境搭建

1. 使用myeclipse创建一个web项目FreeMarker
2. 把下载到的jar包(freemarker-2.3.9.jar)放到\WebRoot\WEB-INF\lib目录下。下载地址:http://freemarker.sourceforge.net/freemarkerdownload.html (注:官方网站.org的经常打不开)
3. 在WebRoot下面新建templates文件包,然后在里面新建扩展名为ftl的模板。
a) 创建Hello.ftl内容如下:

<html>
<head>
<title>hello!</title>
</head>
<body>
<h1>hello ${user}!</h1>
</body>
</html>
4. 在src目录下创建example包 和Hello.java文件,代码如下:
package example;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class Hello extends HttpServlet {
	private Configuration cfg;
	//初始化函数
	public void init()
	{
			//初始化FreeMarker配置
	        //创建一个Configuration实例
	        cfg = new Configuration();
	        //设置FreeMarker的模版文件位置
	        cfg.setServletContextForTemplateLoading(getServletContext(),"templet");
	}

	@Override
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		  //建立数据模型
		   Map root = new HashMap();
		   //放入对应数据key value
		   root.put("user","周志刚");
		   //取得模版文件
		   Template t =cfg.getTemplate("Hello.ftl");
		   //开始准备生成输出
		   //使用模版文件的charset作为本页面的charset
		   //使用text/html MIME-type
		   response.setContentType("text/html; charset=" + t.getEncoding());
		   PrintWriter out = response.getWriter();
		  
		   //合并数据模型和模版,并将结果输出到out中
		   try
		   {
		    t.process(root,out);// 用模板来开发servlet可以只在代码里面加入动态的数据
		   }
		   catch(TemplateException e)
		   {
		    throw new ServletException("处理Template模版中出现错误", e);
		   }
	}

	@Override
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doGet(request, response);
	}
	

}

重点:为了使用FreeMarker来将数据模型中的值合并到模板文件中,可按如下步骤进行:

1,创建Configuration实例,该实例负责管理FreeMarker的模板加载路径,负责生成模板实例
2,使用Configuration实例来生成Template实例,同进需要指定使用的模板文件
3,填充数据模型,数据模型就是一个Map对象
4,调用Template实例的process方法完成合并.

第五步:FreeMarker 模板集成至Web.xml文件中

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  	<servlet>  
	<servlet-name>freemarker</servlet-name>  
	<servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>  
	<!-- 下面配置FreeMarker的ftl文件位置 -->  
	<init-param>  
	<param-name>TemplatePath</param-name>  
	<param-value>/</param-value>  
	</init-param>  
	<!-- 是否和服务器(tomcat)一起启动,0为不,1为是 -->  
	<load-on-startup>1</load-on-startup>  
	</servlet>  
	
	<servlet-mapping>  
	<servlet-name>freemarker</servlet-name>  
	<url-pattern>*.ftl</url-pattern>  
	</servlet-mapping> 
	
	<!--配置Hello.servlet 访问路径  -->
	<servlet>
    <servlet-name>Hello</servlet-name>
    <servlet-class>example.Hello</servlet-class>
	</servlet>
	<servlet-mapping>
    <servlet-name>Hello</servlet-name>
    <url-pattern>*.do</url-pattern>
	</servlet-mapping> 
</web-app>

项目结构图:




项目运行,朋友们可以自己去进行相关测试,下一章节:重点讲解FreeMarker 的基础知识要点。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值