当前位置:   article > 正文

网页静态化技术--FreeMarker--内建函数及运算符_freemark内建函数变量?函数名称

freemark内建函数变量?函数名称

FreeMarker语法也包含一些内置的函数--内建函数。

下面我们来介绍一些常用的内建函数。这里使用的项目依然是之前的案例项目。

主函数写法如下:

  1. package cn.asiainfo.test.freemarker;
  2. import java.io.File;
  3. import java.io.FileWriter;
  4. import java.io.Writer;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. import freemarker.template.Configuration;
  10. import freemarker.template.Template;
  11. public class TestFreeMarker {
  12. public static void main(String[] args) throws Exception {
  13. // 1.创建configuration对象,构造方法参数是freemarker的版本号
  14. Configuration configuration = new Configuration(Configuration.getVersion());
  15. // 2.设置模板文件所在的路径,文件路径可以右键propertity查看,路径需要“\\”
  16. configuration.setDirectoryForTemplateLoading(new File("F:\\workspace_Item3\\spring-demo-freemarker\\src\\main\\resources"));
  17. // 3.设置模板文件的使用的字符集,一般使用UTF-8
  18. configuration.setDefaultEncoding("utf-8");
  19. // 4.加载一个模板,创建一个模板对象
  20. Template template = configuration.getTemplate("test.ftl");
  21. // 5.创建一个模板使用的数据集,pojo/map/list,常用map
  22. Map map = new HashMap();
  23. map.put("name", "八戒");
  24. map.put("message", "猪八戒在高老庄背媳妇");
  25. //5.创建一个模板使用的数据集,list
  26. List people = new ArrayList();
  27. people.add("悟空");
  28. people.add("八戒");
  29. people.add("沙僧");
  30. //将list集合添加到map中
  31. map.put("people", people);
  32. // 6.创建一个writer对象,来制定生成的文件名
  33. Writer out = new FileWriter("F:\\test.html");
  34. // 7.调用模板对象的process方法输出文件
  35. template.process(map, out);
  36. // 8.关闭流
  37. out.close();
  38. }
  39. }

1.首先是内建函数的语法格式:变量+?+函数名称

2.常用内建函数:

(1)获取集合大小:${集合名?size}

例如:

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>Freemarker小DEMO </title>
  5. </head>
  6. <body>
  7. <#--list指令可以对list集合进行遍历-->
  8. <#--if指令可以对所取值进行判断进入那个流程-->
  9. <#list people as p>
  10. <#if p="悟空">
  11. 齐天大圣--孙悟空<br>
  12. <#elseif p="八戒">
  13. 天蓬元帅--猪悟能<br>
  14. <#else>
  15. 卷帘大将--沙悟净<br>
  16. </#if>
  17. </#list>
  18. people集合共 ${people?size} 条记录
  19. </body>

结果如下:


(2)转换JSON字符串为对象 <assign 对象名=text?eval />

例:

  1. <#assign text="{'name':'孙悟空','skill':'72变' }">
  2. <#assign person=text?eval />
  3. 姓名:${person.name} 绝招:${person.skill}<br>

结果如下:


(3)日期格式化:

Java代码中加入

map.put("today", new Date());

test.ftl加入

  1. 当前日期:${today?date} <br>
  2. 当前时间:${today?time} <br>
  3. 当前日期+时间:${today?datetime} <br>
  4. 日期格式化: ${today?string("yyyy年MM月")}

显示结果如下:


3.常用运算符:

(1)空值处理运算符

判断某变量是否为空:“??”

例如:

  1. <#if name??>
  2. ${name?}
  3. <#else>
  4. name不存在
  5. </#if>
(2)空值替代运算符  “!”

例如:

${username!'猪八戒'}

运行结果如下:


(3)算术运算符:

FreeMarker支持的算术运算符有:+,-, *, /, %

(4)逻辑运算符:

&&(逻辑与) ,||(逻辑或), !(逻辑非)

(5)比较运算符:

1  =或者==:判断两个值是否相等.
2  !=:判断两个值是否不等.
3  >或者gt:判断左边值是否大于右边值
4  >=或者gte:判断左边值是否大于等于右边值
5  <或者lt:判断左边值是否小于右边值
6  <=或者lte:判断左边值是否小于等于右边值


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/658282
推荐阅读
相关标签
  

闽ICP备14008679号