欢迎访问优讯网!
您当前的位置:首页 > 爱编程

Thymeleaf中的迭代和字符串String常见的使用方法

时间:2019-04-09 17:03:46  来源:优讯网  作者:小卡司  浏览次数:
Thymeleaf中的迭代和字符串String常见的使用方法  业务需求,需要循环读取权限对应的链接地址,显示到页面中,供创建新角色时选择使用,显示时需要判断链接对应的管理模块(使用字符串匹配),下面就来介绍具体方法!

Thymleaf中用th:each属性实现迭代操作。

 <tr th:each="prod : ${prods}">
        <td th:text="${prod.name}">Onions</td>
        <td th:text="${prod.price}">2.41</td>
        <td th:text="${prod.inStock}? #{true} : #{false}">yes</td>
 </tr>

<tr>将会以prods中的每个元素prod,迭代多次。 
- ${prods}称为被迭代的表达式,被迭代的变量(Iterated expression, Iterrated variable) 
- prod称为迭代变量,其作用域为声明其的标签(Interation variable, iter variable)

被迭代的变量允许的类型为: 
- 实现了java.util.Iterable的对象 
- 实现了java.util.Map的对象,此时inter variable为java.util.Map.Entry 
- 数组 
- 其他任何对象会被当做只有该对象本身一个元素的单值列表被迭代

Theamleaf因为其作为模板引擎的使用场景,仅提供了foreach风格的迭代,未直接提供C中经典的for风格循环方式,不过可以通过foreach一个顺序数列来达到同样的效果。

迭代状态
迭代的状态通过状态变量(status variable)反映。声明状态变量的语法为:迭代变量后,紧跟逗号分隔符,然后声明状态命令的名称。

<tr th:each="prod,iterStat : ${prods}" th:class="${iterStat.odd}? 'odd'">
    <td th:text="${prod.name}">Onions</td>
    <td th:text="${prod.price}">2.41</td>
    <td th:text="${prod.inStock}? #{true} : #{false}">yes</td>
</tr>

状态变量有和迭代变量一样的作用域。

一个状态变量包含数据: 
- index属性,从0开始,当前的迭代索引 
- count属性,从1开始,当前的迭代索引 
- size属性,被迭代变量(Iterated variable)中的元素总数 
- current属性,当前的迭代(Iteration variable)变量 
- even/odd 布尔属性,当前的迭代是奇数还是偶数 
- first/last 布尔属性,当前是否是开始的或最后的迭代

隐式的状态变量
如果没有显式的声明状态变量,一个隐式的状态变量被自动声明,其名称为迭代变量(Iter variable)加上“Stat”的后缀。

  <tr th:each="prod : ${prods}" th:class="${prodStat.odd}? 'odd'">
    <td th:text="${prod.name}">Onions</td>
    <td th:text="${prod.price}">2.41</td>
    <td th:text="${prod.inStock}? #{true} : #{false}">yes</td>
  </tr>

thymeleaf:字符串Strings常见的使用方法:
判断是不是为空: 

<span th:if="${name} != null">不为空</span>
<span th:if="${name} == null">为空</span>

判断是不是为空字符串: 

<span th:if="${#strings.isEmpty(name)}">空的</span>

判断是否相同:

<span th:if="${user.sex} eq '男'">男生</span>
<span th:if="${user.sx} eq '女'">女生</span>
<span th:if="${user.age} lt 18">小于18岁,未成年</span>

不存在设置默认值:

<span th:text="${name2} ?: '默认值'"></span>
 
是否包含(分大小写):

<span th:if="${#strings.contains(user.authorities,'ROLE_ADMIN')}">管理员</span>
<span th:if="${#strings.contains(user.authorities,'ROLE_USER')}">用户</span>
 
是否包含(不区分大小写):

<span th:if="${#strings.containsIgnoreCase(user.authorities,'ROLE_admin')}">管理员</span>
 
${#strings.startsWith(name,'o')}
${#strings.endsWith(name, 'o')}
${#strings.indexOf(name,frag)}// 下标
${#strings.substring(name,3,5)}// 截取
${#strings.substringAfter(name,prefix)}// 从 prefix之后的一位开始截取到最后,比如 (ywj,y) = wj, 如果是(abccdefg,c) = cdefg//里面有2个c,取的是第一个c
${#strings.substringBefore(name,suffix)}// 同上,不过是往前截取
${#strings.replace(name,'las','ler')}// 替换
${#strings.prepend(str,prefix)}// 拼字字符串在str前面
${#strings.append(str,suffix)}// 和上面相反,接在后面
${#strings.toUpperCase(name)}
${#strings.toLowerCase(name)}
${#strings.trim(str)}
${#strings.length(str)}
${#strings.abbreviate(str,10)}// 我的理解是 str截取0-10位,后面的全部用…这个点代替,注意,最小是3位
 
以上就是关于 Thymeleaf中的迭代和字符串String常见的使用方法 的全部内容了,喜欢的小伙伴别忘了点赞分享一下哦,关注优讯网,优讯有你更精彩!
来顶一下
返回首页
返回首页
推荐资讯
计算机的正确使用姿势 电脑痴如何正确的使用电脑
计算机的正确使用姿势
好用的后台管理的前端框架模版H-ui H-ui框架模版分享
好用的后台管理的前端
微信电脑多开方法 无需辅助电脑版微信双开方法分享
微信电脑多开方法 无
Python实现网站百度主动推送 python实现主动推送网站地图
Python实现网站百度主
相关文章
栏目更新
栏目热门