Freemarker判断对象是否为空

骑猪看日落 2022-04-10 10:56 801阅读 0赞

freemarker中显示某对象使用${name}.

但如果name为null,freemarker就会报错。如果需要判断对象是否为空:

  1. <#if name??>
  2. ……
  3. </#if>

当然也可以通过设置默认值${name!’’}来避免对象为空的错误。如果name为空,就以默认值(“!”后的字符)显示。

对象user,name为user的属性的情况,user,name都有可能为空,那么可以写成${(user.name)!’’},表示user或者name为null,都显示为空。判断为空

  1. <#if (user.name)??>
  2. ……
  3. </#if>

举例:

  1. @RequestMapping("/freemarker")
  2. public String freemarker(Map<String, Object> map) {
  3. map.put("name", "Joe");
  4. map.put("sex", 1); //sex:性别,1:男;0:女;
  5. // 模拟数据
  6. List<Map<String, Object>> friends = new ArrayList<Map<String, Object>>();
  7. Map<String, Object> friend = new HashMap<String, Object>();
  8. friend.put("name", "xbq");
  9. friend.put("age", 22);
  10. friends.add(friend);
  11. friend = new HashMap<String, Object>();
  12. friend.put("name", "July");
  13. friend.put("class", "一班");
  14. friends.add(friend);
  15. map.put("friends", friends);
  16. return "page/index";
  17. }
  18. <p>
  19. welcome ${name} to freemarker!
  20. </p>
  21. <p>性别:
  22. <#if sex==0>
  23. <#elseif sex==1>
  24. <#else>
  25. 保密
  26. </#if>
  27. </p>
  28. <h4>我的好友:</h4>
  29. <#list friends as item>
  30. 姓名:${item.name} ,
  31. <#if (item.age)??> 年龄${item.age}
  32. <#elseif (item.class)??> 班级${item.class}
  33. </#if>
  34. <br>
  35. </#list>

发表评论

表情:
评论列表 (有 0 条评论,801人围观)

还没有评论,来说两句吧...

相关阅读