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>
时间: 2024-10-25 05:02:28

Freemarker-2.3.22 Demo - No04_条件判断的相关文章

(6)javascript的程序控制结构及语句-----(1)条件判断

程序控制结构及语句 编程就是将现实应用,转换为程序能够读得懂的语法语句.Javascript编程中对程序流程控制主要是通过条件判断语句.循环控制语句及continue.break来完成的,其中条件判断按预先设定的条件执行顺序,它包括if语句和switch语句:而循环控制语句则可以重复完成任务,它包括while语句.do...while语句及for语句. 一.条件判断语句: 条件判断语句就是对语句中不同条件的值进行判断,进而根据不同条件执行不同的语句.条件判断语句有"if条件语句"和&q

python-FIrst1--变量赋值-注释-用户交互-条件判断与缩进

变量与赋值 name='mike'          #这里一定要注意,如果右边的值不是数字,就一定要加引号,否则系统会认为右边也是一个变量,而右边我们希望是一个值,所以这时候我们就需要给右边加上单引号或者双引号,以表示右边是一个字符串. age=39 把右边的值赋予左边,就是赋值,左边的name和age就叫做变量. 注释 可以用#符号来表示,也可以用一对三个连续的单引号和双引号来表示多行注释,当要注释的内容不多的时候用#比较方便,当要注释很多行内容尤其是超过三行的时候最好用,一对 三个单引号或

条件判断之if、case语句和文件查找命令

一.脚本编程 1.if语句怎样用 人生面临许多选择,在编程世界里同样也有许多选择.同其他编程语言一样,当我们想写一个功能健壮的脚本时,通过条件判断来选择适合的操作尤为重要.在我们执行某些重要的操作之前,判断当前环境是否适合执行这一操作是非常重要的.我们可以用&&和||来做简单的判断,不过shell有更用的语句.shell有两种常见的条件选择语句if和case.我们先来看一下if该怎样用吧. if语句的单分支语法: if 条件判断 ;then;执行命令:fi [[email protecte

初识python(条件判断、循环控制、循环次数限制、常用数据类型、字符串格式化、列表常用操作、二进制运算、嵌套循环)

第一天学习 1.pycharm使用遇到的问题: 如果想运行程序A,一定要右键去执行程序A,而不能直接左下角run,那样的话可能会出现运行之前其他程序 pycharm小技巧: 1.多行全选,shift+tab整体往前缩进一个tab 2.多行全选,tab整体向后缩进一个tab 3.多行全选,ctrl+/注释所选代码,再次按ctrl+/注释取消所选代码 4.pycharm中切换3.5和2.7:file菜单-settings-project pycharmPreject--project interpr

shell中的变量及shell条件判断

Shell 基础之变量和条件判断 一.shell概述 1.shell概述: shell是一个命令行的解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统及程序,用户可以用shell来启动.挂起.停止甚至编写一些程序,shell还是一个功能强大的编程语言,shell是解释性的脚本语言,在shell中可以直接调用Linux命令. 2.shell脚本的用途 (1)自动化常用的命令 (2)执行系统管理和故障排除 (3)执行简单的应用程序 (4)处理文本或文件 3.shell的分类 (1

Bash条件判断

bash编程之:条件判断,判定后续操作的前提条件是否满足, bash编程之: 条件判断常用类型: 整数测试:比较两个整数谁大谁小,是否相等: 二元测试: num1 操作符 num2 -eq: 等于 -ne: 不等于 -le:小于等于 -ge:大于等于 -lt:小于 -gt: 大于 字符测试:比较两个字符串是否相等: 双目录 >:          大于 <:          小于 ==:             等于,等值比较 =~:             左侧是字符串,右侧是一个模式,判

python之--条件判断和循环

Python之判断 和其他语言一样,python同样具有条件判断和循环的操作,比如我们可以编写一个简单的判断操作:使用if关键字可以达到判断的效果,如下例: 1 >>> test_if = raw_input() 2 50 3 >>> if test_if < 50: 4 ... print "you are so yamg" 5 ... else: 6 ... print "you are so old!" 7 ... 8

Js的三种条件判断语句

Js的三种条件判断语句 If if语句 只有当指定条件为 true 时,使用该语句来执行代码. 语法 if (条件) { 只有当条件为 true 时执行的代码 } if...else 语句 在条件为 true 时执行代码,在条件为 false 时执行其他代码. 语法 if (条件) { 当条件为 true 时执行的代码 } else { 当条件不为 true 时执行的代码 } If...else if...else 语句 使用 if....else if...else 语句来选择多个代码块之一来

Shell编程之条件判断与流程控制

一.条件判断式语句 1-1.概述 用来判断是与否,客观的而非主观判断,用于进行基本的管理 1-2.按文件类型判断 补充: && 命令1&&命令2 逻辑与(没有数据传递) 当命令1正确执行,则命令2才会执行 当命令1执行不正确,则命令2不会执行 || 命令1||命令2 逻辑或(没有数据传递) 当命令1执行不正确时,命令2才会执行 当命令1正确执行时,命令2不会执行 按文件类型判断 记住蓝色部分 两种判断格式: test –e /root/install.log [-e /ro