freemarker 的基础使用二
ftl 文件
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <#-- 定义变量--> <#assign username="张三"> ${username} <#-- 如果定义相同的 变量, 变量的值会被覆盖, 会以最后的值为准--> <#assign num=10> ${num+11} <#assign b=true> <#-- 不能直接输出数字或者字符串以外的东西 否则都会报错, 需要转化成字符串才能输出, 使用 XXX?string 可以完成字符串的转换--> ${b?string} <#-- 这里三个问号 :前两个 判断是否为空, 后一个按照String输出 后面这个括号可有可无, 如果没有的话,就按照 本值输出, 如果有的话, 类似于三目运算逻辑, 进行替换输出 --> ${(a.ss)???string("true","false")} <#-- 时间输出 日期不能直接输出, 需要转换成字符串 按照括号后面的格式进行输出--> ${now?string("yyyy-MM-dd HH:mm:ss")} <#-- 字符串输出拼接 两种方式--> ${" welcome:"+username} ${"welcome:${username}"} <#-- 字符串转换成日期 date 用来转换日期, datetime 用来转换日期时间, time用来转换时间 --> ${"1979-25-45"?date("yyyy-MM-dd")} <#assign bir = "1997-03-04 12:34:23"?datetime("yyyy-MM-dd HH:mm:ss")> ${"字符串转时间"+bir} </body> </html>
@Test public void test07(){ Map<String,Object> root = new HashMap<String, Object>(); root.put("now", new Date()); frr.print("07.ftl", root); } @Test public void test06(){ // 此时 user 对象没有group的值, 如果前台要取值,就会报错, freemarker 不具备处理空值 // 需要自己处理空值 Map<String,Object> root = new HashMap<String, Object>(); root.put("user",new User(1, "地点", 19)); frr.fprint("06.ftl", root, "06.html"); }