首页 > 技术文章 > freemarker

honger 2016-12-01 19:09 原文

一、下载freemarker的jar包,到maven仓库下载

二、引入jar包,参考freemarker的手册写代码

1、Test.ftlh

<!DOCTYPE html>
<html>
    <head>
         <title>Welcome!</title>
    </head>
    <body>
         <p>My name is ${username}, I'm ${age} years old, my birthday is ${date?string("yyyy-MM-dd")}</p>
    </body>
</html>

2、com.freeMark.bean.User

package com.freeMark.bean;

import java.util.Date;

public class User {
    
    private String username;
    
    private int age;
    
    private Date date;
    
    public User(String username, int age, Date date) {
        
        this.username  = username;
        this.age = age;
        this.date = date;
        
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Date getDate() {
        return date;
    }

    public void setDate(Date date) {
        this.date = date;
    }
    
    
    

}

3、com.freeMark.FreemarkTest

package com.freeMark;

import java.io.File;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.Calendar;
import java.util.GregorianCalendar;

import com.freeMark.bean.User;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler;

public class FreemarkTest {
    
    public static void main(String[] args) {
        
        Calendar calendar = new GregorianCalendar(1994, 1, 18);
        
        User user = new User("youth", 22, calendar.getTime());
        
        Configuration cfg = new Configuration(Configuration.VERSION_2_3_25);

        try {
            //设置模板的地址
            cfg.setDirectoryForTemplateLoading(new File("src/ftl"));
        

            cfg.setDefaultEncoding("UTF-8");
            //设置报错处理方式
            cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
    
            cfg.setLogTemplateExceptions(false);
            //取得模板
            Template temp = cfg.getTemplate("Test.ftlh");
            
            Writer out = new OutputStreamWriter(System.out);
            //设置模型数据
            temp.process(user, out);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

三、输出结果

<!DOCTYPE html>
<html>
    <head>
         <title>Welcome!</title>
    </head>
    <body>
         <p>My name is youth, I'm 22 years old, my birthday is 1994-02-18</p>
    </body>
</html>

 

推荐阅读