zoukankan      html  css  js  c++  java
  • freemarker入门实例

    freemarker入门实例


    1、设计思路

    (1)新建Maven Project

    (2)生成freemarker模板

    (3)写freemarker页面ftl文件

    (4)写測试文件


    2、新建Maven Project


    3、生成freemarker模板

    FreemarkerTemplate.java:

    /**
     * @Title:FreemarkerTemplate.java
     * @Package:com.you.freemarker
     * @Description:freemarker模板
     * @author:Youhaidong(游海东)
     * @date:2014-5-25 下午11:18:00
     * @version V1.0
     */
    package com.you.freemarker;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Map;
    
    import freemarker.template.Configuration;
    import freemarker.template.Template;
    import freemarker.template.TemplateException;
    
    /**
     * 类功能说明
     * 类改动者 改动日期
     * 改动说明
     * <p>Title:FreemarkerTemplate.java</p>
     * <p>Description:游海东个人开发</p>
     * <p>Copyright:Copyright(c)2013</p>
     * @author:游海东
     * @date:2014-5-25 下午11:18:00
     * @version V1.0
     */
    public class FreemarkerTemplate 
    {
    	  /**
    	   * 生成freemarker模板文件
    	   * @Title:getTemplate
    	   * @Description:
    	   * @param:@param name
    	   * @param:@return
    	   * @return:Template
    	   * @throws
    	   */
          public Template getTemplate(String name)
          {
        	  try 
        	  {
        		  //通过FreeMarker的Configuration读取对应的FTL
        		  Configuration conf = new Configuration();
        		  //设置去哪里读取对应的ftl模板文件
            	  conf.setClassForTemplateLoading(this.getClass(), "/com/you/ftl");
            	  //在模板文件文件夹中找到名称为name的文件
            	  Template temp = conf.getTemplate(name);
            	  return temp;
    		  } 
        	  catch (IOException e) 
    		  {
    			  e.printStackTrace();
    		  }
    		return null;
          }
          
          /**
           * 将结果输出到控制台
           * @Title:printFtl
           * @Description:
           * @param:@param name
           * @param:@param root
           * @return: void
           * @throws
           */
          public void printFtl(String name,Map<String,Object> root)
          {
        	  try 
        	  {
        		  //通过Template能够将模板文件输出到对应的流
        		  Template temp = this.getTemplate(name);
        		  temp.process(root, new PrintWriter(System.out));
    		  } 
        	  catch (TemplateException e) 
    		  {
        		  e.printStackTrace();
    		  } 
        	  catch (IOException e) 
    		  {
        		  e.printStackTrace();
    		  }
          }
    }
    

    4、写freemarker页面ftl文件

    user.ftl:

    姓名:${username}
    年龄:${age}
    性别:${sex}

    5、写測试文件

    FreemarkerTest.java:

    /**
     * @Title:FreemarkerTest.java
     * @Package:com.you.test.freemarker
     * @Description:Freemarker測试
     * @author:Youhaidong(游海东)
     * @date:2014-5-25 下午11:32:15
     * @version V1.0
     */
    package com.you.test.freemarker;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.junit.Before;
    import org.junit.Test;
    
    import com.you.freemarker.FreemarkerTemplate;
    
    /**
     * 类功能说明
     * 类改动者 改动日期
     * 改动说明
     * <p>Title:FreemarkerTest.java</p>
     * <p>Description:游海东个人开发</p>
     * <p>Copyright:Copyright(c)2013</p>
     * @author:游海东
     * @date:2014-5-25 下午11:32:15
     * @version V1.0
     */
    public class FreemarkerTest 
    {
    	FreemarkerTemplate ft;
    	
    	/**
    	 * 
    	 * @Title:buildUp
    	 * @Description:实例化对象
    	 * @param:
    	 * @return: void
    	 * @throws
    	 */
    	@Before
    	public void buildUp()
    	{
    		ft = new FreemarkerTemplate();
    	}
    	
    	/**
    	 * 
    	 * @Title:testFreemarker
    	 * @Description:測试结果
    	 * @param:
    	 * @return: void
    	 * @throws
    	 */
    	@Test
    	public void testFreemarker()
    	{
    		//创建数据模型
    		Map<String,Object> root = new HashMap<String,Object>();
    		//为数据模型加入值
    		root.put("username", "张三");
    		root.put("age", "22");
    		root.put("sex", "男");
    		//将数据模型和模板中的数据输出到控制台
    		ft.printFtl("user.ftl", root);
    	}
    
    }
    

    6、測试结果

    姓名:张三
    年龄:22
    性别:男


  • 相关阅读:
    Android 2.2 r1 API 中文文档系列(11) —— RadioButton
    Android API 中文 (15) —— GridView
    Android 中文 API (16) —— AnalogClock
    Android2.2 API 中文文档系列(7) —— ImageButton
    Android2.2 API 中文文档系列(6) —— ImageView
    Android 2.2 r1 API 中文文档系列(12) —— Button
    Android2.2 API 中文文档系列(8) —— QuickContactBadge
    [Android1.5]TextView跑马灯效果
    [Android1.5]ActivityManager: [1] Killed am start n
    Android API 中文(14) —— ViewStub
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5404925.html
Copyright © 2011-2022 走看看