概述

一般情况下只能够从Controller传一个数组或者List的变量到HTML来遍历,但是也有场景是需要直接在HTML上定义变量,但发现Thymeleaf这么简单的方法都没有,找了内置的arrayslists都没有办法定义数组,最后找到了strings有一个方法strings.arraySplit,可以用一个字符串截取逗号,来解决静态数组的定义。

例子

直接遍历渲染

<li th:each="fruit : ${#strings.arraySplit('苹果,西瓜,榴莲',',')}" 
th:text="${fruit}">
</li>

定义变量并渲染

<div th:with="fruits=${#strings.arraySplit('苹果,西瓜,榴莲,凤梨',',')}">
   <li th:each="fruit : ${fruits}" th:text="${fruit}"></li>
</div>

另外一种方法

截取字符串的方法好像有点不太好看,也有另外一种方法,可以重写Thymeleaf的 org.thymeleaf.expression.Arrays 类,增加一个“脱裤子放屁”的方法。

public Object[] asList(Object[] objects) {
   return objects;
}

HTML上使用

<ul>
    <li th:each="fruit : ${#arrays.asList('苹果,西瓜,榴莲')}" th:text="${fruit}"></li>
</ul>

FrontNg
41 声望3 粉丝

Java/Spring Cloud/微服务/Dev-Ops/Linux/Vue.js


引用和评论

0 条评论