• 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
    性别:男


  • 相关阅读:
    大屏展示功能
    单例模式/原型模式
    .net core ioc
    Log4net
    mvc 过滤器
    webservice
    页面传值 作用域
    Map使用方法
    java获取当前时间撮
    linux 下统计文本行数的各种方法(一)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13315087.html
Copyright © 2020-2023  润新知