FreeMarker例子

来源:互联网 发布:ipad pro办公软件 编辑:程序博客网 时间:2024/05/22 12:43

JavaTest

package com.lanou.item.test;import java.io.File;import java.io.FileWriter;import java.io.Writer;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import org.junit.Test;import freemarker.template.Configuration;import freemarker.template.Template;public class FMTest {    @Test    public void FreeMarkerTest() throws Exception{        //1.创建config        Configuration config = new Configuration(Configuration.getVersion());        //2.加载模板路径        config.setDirectoryForTemplateLoading(new File("C:\\Users\\lanou3g\\workspace\\javaEE\\shop-item-web\\src\\main\\webapp\\WEB-INF\\ftl"));        //3.设置模板文件编码格式        config.setDefaultEncoding("UTF-8");        //4.加载模板        Template template = config.getTemplate("student.ftl");        //4.1通过对象传递        Map map = new HashMap();//      静态化pojo//      Student student = new Student(1,"宫贺",18,"天桥下");//      map.put("student", student);        //静态化list        List list = new ArrayList();        Student stu = null;        for (int i = 0; i < 10; i++) {            stu = new Student(i+1, "宫贺"+i, i+18, i+"大胡同");            list.add(stu);        }        map.put("liststu", list);        //放个时间        map.put("data", new Date());        map.put("var", null);        //4.2指定输出的文件路径        Writer out = new FileWriter("C:\\123\\student.html");        //5.用模板对象进行传递        template.process(map, out);        //6.关闭资源        out.close();    }}

页面–可以先用jsp写入,之后再改成ftl或html,java等格式
比如写某些java实体类,想通的工具类等等
student.ftl

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><table border="1">    <tr>        <td>id</td>        <td>姓名</td>        <td>年龄</td>        <td>地址</td>    </tr>    <#list liststu as stu>          <#if stu_index%2 != 0 >                <tr bgcolor="blue">            <#else>                <tr bgcolor="pink">        </#if>            <td>${stu.id}</td>            <td>${stu.name}</td>            <td>${stu.age}</td>            <td>${stu.addr}</td>        </tr>    </#list></table>这是一个时间:${data?time} </br>这是一个日期:${data?date} </br>这是时间+日期1:${data?datetime} </br>这是时间+日期2:${data?string("yyyy-MM-dd HH:mm:ss:SSS")} </br></br><hr/>进行null的判断:</br></br>null的处理:加叹号!${var!},否则报错.<#if var??><!-- 当var != null ,结果是true,否则是false -->        <h1>var不是null</h1>    <#else>        <h1>var是null</h1></#if></body></html>