Thymeleaf循环,获取下标,并作不同处理
最近在做一个期刊项目,门户在用Thymeleaf。作者那块有个上标循环做不同处理,就自己总结了一下。
<span th:utext="${author.name}">Pan Bingxing</span>
<sup th:each="i:${author.companyId}" th:text="${iStat.index eq 0 ? i : (','+i)}">1</sup>
效果图是这样的:
th:utext="${author.name}"
是后端拿到的Author类的name字段的值替换标签里的字段,我这里name字段的类型是String,值是Bin Wang。
th:each="i:${author.companyId}"
是循环Author类的companyId字段,这个字段是个String类型的集合,i是循环的值。
th:text="${iStat.index eq 0 ? i : (','+i)}"
是获取到i的下标,如果不是第一个,i的前面就会加上逗号。
值得一提的是,iStat 这是Thymeleaf提供的对象,一般为×××Stat,前面的×××就是each循环冒号前面的值,这个对象初始 index(索引),count(),size(),current(),even(),odd(),first(),last()等属性。index的值是从0开始的。即索引从0开始计算。
此外,th:utext和th:text的区别在于,加u的可以替换富文本,不加u的是字符串。Thymeleaf循环的时候会循环标签,如果标签上有样式的话,需要注意。