Freemarker-2.3.22 Demo - No04_条件判断

 

package No04_条件判断;



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("No04_条件判断.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", null);

        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();

    }



}

 

No04_条件判断.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>

                        <#if being.username == 'Nick Huang'>

                            Junior Programmer (${being.username})

                            <#else>

                            ${being.username}

                        </#if>

                    </th>

                    <th>

                        <#if 19 < being.age >

                            Old

                            <#else>

                            Young

                        </#if>

                    </th>

                    <th>

                        <#-- 如果为空,取默认值 -->

                        <#if being.nickname??>

                            ${being.nickname}

                            <#else>

                            no value

                        </#if>

                        <#-- 以下为简单写法 -->

                        <#-- ${being.nickname ! 'no value'} -->

                    </th>

                </tr>

            </#list>

        </tbody>

    </table>

</body>

</html>

 

你可能感兴趣的:(freemarker)