Freemarker-2.3.22 Demo - No04_条件判断

时间:2022-09-23 09:12:58
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-2.3.22 Demo - No04_条件判断的更多相关文章

  1. Bash条件判断

    bash编程之:条件判断,判定后续操作的前提条件是否满足, bash编程之: 条件判断常用类型: 整数测试:比较两个整数谁大谁小,是否相等: 二元测试: num1 操作符 num2 -eq: 等于 - ...

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

    程序控制结构及语句 编程就是将现实应用,转换为程序能够读得懂的语法语句.Javascript编程中对程序流程控制主要是通过条件判断语句.循环控制语句及continue.break来完成的,其中条件判断 ...

  3. shell条件判断与流程控制

    一 条件判断式语句 1.按文件类型进行判断 测试类型 作用 -b 文件 判断文件是否存在,并且是否为块设备文件(是块设备文件为真) -c 文件 判断文件是否存在,并且是否为字符设备文件(是字符设备设备 ...

  4. 【重点】Shell入门教程:流程控制(2)条件判断的写法

    第三节:条件判断的写法 if条件判断中,if的语法结构中的“条件判断”可以有多种形式.测试结果是真是假,就看其传回的值是否为0. 条件测试的写法,有以下10种: 1.执行某个命令的结果 这里的命令,可 ...

  5. 【重点】Shell入门教程:流程控制(3)条件判断式的真假值

    之前曾提到,在Bash中什么是真什么是假,是以命令的结束状态是否为0来做判断.传回0,即为真:传回非0,即为假. 在Bash中,这种可以影响程序流程的式子,称为条件判断式.判断式的操作数分成“单元”及 ...

  6. python基础-编码&lowbar;if条件判断

    一.第一句Python代码 在 /home/dev/ 目录下创建 hello.py 文件,内容如下: [root@python-3 scripts]# cat hello.py #!/usr/bin/ ...

  7. 第十三章、学习 Shell Scripts 条件判断式

    利用 if .... then 单层.简单条件判断式 if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的命令工作内容: fi <==将 if 反过来写,就成为 fi !结束 i ...

  8. LINUX SHELL条件判断

    算术运算的条件判断 [] [[]]: -eq -ne -lt -le -gt -ge (( )):><>=<== [root@monitor ~]# if (( 2 == 3) ...

  9. Linux学习之第十九、条件判断

    原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_4.php 条件判断式 只要讲到『程序』的话,那么条件判断式,亦即 ...

随机推荐

  1. python3&period;4学习笔记&lpar;十七&rpar; 网络爬虫使用Beautifulsoup4抓取内容

    python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...

  2. Julius JS – 最流行的网页语音识别库

    JuliusJS 是用于在网页中的语音识别库.这是 Julius(由日本京都大学和日本IPA联合开发的一个实用高效双通道的大词汇连续语音识别引擎)的 JavaScript 实现.它实时侦听用户的语音并 ...

  3. ASP&period;NET MVC3 Model验证总结(转)

    推荐:   ASP.NET MVC的Model元数据与Model模板:预定义模板 http://www.cnblogs.com/artech/archive/2012/05/02/model-meta ...

  4. J2EE 第二阶段项目之部署项目、分工安排

    SVN 先通过使用教程,和能够介绍了解svn. svn使用教程总结   ;   svn功能介绍. 分工安排:我的任务就是项目统计. 1 效益统计 1 教育效益统计表 (教育效益统计表,增,改,查看,查 ...

  5. 构建CMDB的一些启发

    开篇感言: 自从学习python自动化开发以来,一直都是从技术的角度来看待一切.以为技术就是王道.但显然我是一只井底之蛙.其实技术只不过是实现功能的工具而已,仅此而已.后来学习了解CMDB,越来越发现 ...

  6. 【Office Web Apps】在 SharePoint 中使用 Office Web Apps

    在 SharePoint 中使用 Office Web Apps 在安装并配置了 Microsoft Office Web Apps 的 SharePoint 网站上,通过 Office Web Ap ...

  7. Java的三种代理模式简述

    本文着重讲述三种代理模式在java代码中如何写出,为保证文章的针对性,暂且不讨论底层实现原理,具体的原理将在下一篇博文中讲述. 代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下, ...

  8. sshpass 绕过ssh 密码交互式验证

    经常我们使用脚本登入服务器的时候,如果使用ssh 命令,经常会提示密码输入,我们不得不手动输入密码,因为ssh 没有 密码的选项. 为了能绕过交互式验证,我们使用sshpass命令解决这个问题: 1. ...

  9. 【hdu3842】 Machine Works

    http://acm.hdu.edu.cn/showproblem.php?pid=3842 (题目链接) 题意 一个公司使用一个厂房$D$天,希望获利最大.有$n$台机器,每一台可以在第$D_i$天 ...

  10. Kali社会工程学攻击--powershell 攻击&lpar;无视防火墙&rpar;

    1.打开setoolkit 输入我们反弹shell的地址与端口 2.修改我的shellcode 3.攻击成功