• Freemarker-2.3.22 Demo


    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>
  • 相关阅读:
    数据结构解决哈希冲突方法回顾
    java线程池大小分配方案
    java线程池工作原理
    非对称密码体制
    java ThreadLocal
    jvm配置参数
    定时器深入讲解
    开发笔记三
    开发笔记二
    js证书批量生成与打包下载
  • 原文地址:https://www.cnblogs.com/nick-huang/p/4611391.html
Copyright © 2020-2023  润新知