Freemarker-2.3.22 Demo - No03_使用map绑定多个参数

 

package No03_使用map绑定多个参数;



import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStreamWriter;

import java.io.Writer;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;



import freemarker.template.Configuration;

import freemarker.template.Template;

import freemarker.template.TemplateExceptionHandler;



public class Test {



    public static void main(String[] args) throws Exception {



         设置模板的home目录,默认从此目录获取模板(此设置只需在应用中设置一次) 

        Configuration cfg = new Configuration(Configuration.VERSION_2_3_22);

        cfg.setDirectoryForTemplateLoading(new File("D:/freemarker_template_home/"));

        cfg.setDefaultEncoding("UTF-8");

        cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);

        

         获取模板

        Template temp = cfg.getTemplate("No03_绑定列表数据.ftl");

        

         创建、设置数据模型 

        Map<String, Object> dataMap = new HashMap<String, Object>();

        

        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

        dataMap.put("userList", list);

        

        Map<String, Object> userMap = new HashMap<String, Object>();

        userMap.put("username", "Nick Huang");

        userMap.put("age", 20);

        userMap.put("nickname", "Nick");

        list.add(userMap);

        

        userMap = new HashMap<String, Object>();

        userMap.put("username", "Viki Yang");

        userMap.put("age", 19);

        userMap.put("nickname", "Viki");

        list.add(userMap);

        

        userMap = new HashMap<String, Object>();

        userMap.put("username", "Teng Yang");

        userMap.put("age", 18);

        userMap.put("nickname", "Teng");

        list.add(userMap);

        

         将模板和数据模型合并 

        String filename = temp.getName();

        filename = filename.substring(0, filename.lastIndexOf(".") + 1) + "html";

        FileOutputStream fos = new FileOutputStream(new File("D:/freemarker_output_home/" + filename));

        Writer out = new OutputStreamWriter(fos);

        

        temp.process(dataMap, out);

        out.flush();

    }



}

 

No03_绑定列表数据.ftl
<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>User list</title>

</head>

<body>

    <table>

        <thead>

            <tr>

                <th>user name</th>

                <th>age</th>

                <th>nick name</th>

            </tr>

        </thead>

        <tbody>

            <#list userList as being>

                <tr>

                    <th>${being.username}</th>

                    <th>${being.age}</th>

                    <th>${being.nickname}</th>

                </tr>

            </#list>

        </tbody>

    </table>

</body>

</html>

 

你可能感兴趣的:(freemarker)