今天我分享一下我觉得在使用thymeleaf经常会用的到一些操作。
一、遍历
<div class="card-deck row">
<!-- 这里的list就是后台传的集合,iterStat你自己取的名字,是个“状态变量”来获取index,count,size...这写属性 -->
<figure class="card border-grey " th:each="list,iterStat : ${goodsList}" th:if="${iterStat.count}<=6">
<span th:if="${list.goodsStatus eq 0}">待审核</span><!-- 这里是普通判断-->
<span th:if="${list.goodsStatus eq 1}">已审核</span>
<!--这里是一种分割方法, 比如数据存了4张图片的路径,用 逗号分割,你获取第一张图片 -->
<img th:src="${#strings.substringBefore(list.goodsImg,',')}" />
<div class="card-body px-0">
<h4 class="card-title" th:text="${list.goodsName}"></h4>
<span th:text="'销量:'+${list.salesVolume}"></span><br/>
<span th:text="'库存:'+${list.stockCount}"></span><br/>
<span th:text="'商品编码:'+${list.goodsCode}"></span>
<label style="float: right">
<!-- 这是 链接待参数取值,传值 -->
<a th:href="@{/searchGoodsById/(id=${list.id},businessId=${session.user.id})}"> </a>
<a th:href="@{/searchGoodsByIdEdit/(id=${list.id},businessId=${session.user.id})}"></a>
</label>
</div>
</figure>
</div>
</div>
二、JS取值
//这里 th:inline="javascript" 很关键,必须要有.
//跟平常的不同就是多了[[]],两个括号.
//jsp就做不到这个,这是个大区别
<script language="javascript" type="text/javascript" th:inline="javascript">
var message = [[${goods.goodsContent}]];
</script>
三、字符串处理
截取第一个逗号前的字符串:
<img th:src="${#strings.substringBefore(list.goodsImg,',')}" />
一些操作:
${#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位
实用操作,相当与JSTL里的 <forToken>
<div class="card-deck">
<!-- 这里就是 比如你要处理一个,用逗号拼接的4个路径,这里遍历出4张图片-->
<figure th:each="list,iterStat : ${#strings.listSplit(goods.goodsImg,',')}" >
<img th:src="${list}" />
<div class="card-body px-0">
<h4 class="card-title">主图</h4>
</div>
</figure>
</div>
恩,基本就这些…