当前位置:   article > 正文

SpringBoot+FreeMarker 学习(四)FreeMarker常用内建函数_freemarker join

freemarker join

FreeMarker的maven引用及application配置见第一篇教程

SpringBoot+FreeMarker 学习(一)初识FreeMarker

string?html

给出 string的HTML转义版本, 比如 & 会由 & 来代替。

string?upper_case 

给出 string值的大写版本 (比如 "ABC" 来替代 "abc")

string?cap_first 

给出 string 的首字母大写版本(比如 "Abc" 来替代 "abc")

string?length 

给出 string值中字符的数量(对于 "abc" 来说就是3)

list?size 

给出 list序列中项目的个数

list?join(", ")

 通过连接所有项,将列表转换为字符串, 在每个项之间插入参数分隔符(比如 "item1,item2")

string?starts_with("A") 

根据 string的首字母是否是 "A" 返回布尔值true或false。

boolean?string("Y", "N") 

基于布尔值来返回字符串 "Y" 或 "N"。

在 <#list users as user> 和对应的 </#list> 标签中

user?index 

给出了在 users 中基于0开始的 user的索引值

user?counter 

也像 index, 但是给出的是基于1的索引值

user?item_parity

 基于当前计数的奇偶性,给出字符串 "odd" 或 "even"。

user?item_cycle('lightRow','darkRow') 

item_parity 更为常用的变体形式,奇数和偶数分别取lightRow和darkRow的值

例子:新建function.ftl模板文件

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>function</title>
  6. </head>
  7. <body>
  8. <p>${username} function html ${username?html}
  9. <p>${username} function upper_case ${username?upper_case}
  10. <p>${username} function cap_first ${username?cap_first}
  11. <p>${username} function length ${username?length}
  12. <p>list function size ${users?size}
  13. <p>list function join ${users?join(",", "name")}
  14. <p>${username} function starts_with A ${username?starts_with("A")?string("yes", "no")}
  15. <p>We have users:
  16. <table border=1>
  17. <tr><td>index<td>counter<td>item_parity<td>item_cycle<td>name<td>age
  18. <#list users as user>
  19. <tr><td>${user?index}<td>${user?counter}<td>${user?item_parity}<td>${user?item_cycle('lightRow','darkRow')}<td>${user.name}<td>${user.age}
  20. </#list>
  21. </table></body>
  22. </html>

创建FunctionContoller 
 

  1. @Controller
  2. @RequestMapping(value = "/function")
  3. public class FunctionController {
  4. @RequestMapping("/test")
  5. public String includeLabel(String username, int userCount, Model model) {
  6. List<User> users = new ArrayList<>();
  7. for (int i = 0; i < userCount; i++) {
  8. User user = new User();
  9. user.setName(String.format("user%d", i + 1));
  10. user.setAge(i + 20);
  11. users.add(user);
  12. }
  13. model.addAttribute("users", users);
  14. model.addAttribute("username", username);
  15. return "function";
  16. }
  17. }

运行项目,访问地址: http://127.0.0.1:8080/function/test?username=test%3C%3E&userCount=10

 html转义语法,这里展示不出来区别,可以查看网页源码

 join方法,默认显示类的地址,我们重写一下User实体类的toString方法,可以让他显示用户名称

  1. @Getter
  2. @Setter
  3. public class User {
  4. private String name;
  5. private int age;
  6. @Override
  7. public String toString() {
  8. return name;
  9. }
  10. }

重新启动项目,再次访问

 

测试代码地址: HelloFreeMarker: SpringBoot+FreeMarker 学习

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

闽ICP备14008679号