thymeleaf踩坑之路(⼀)数字(number)算法坑
thymeleaf 踩坑之路(⼀)数字(number) 算法坑
涉及坑
1. 除法,整数和浮点数
2. 三元运算(?:)
3. 循环(list->each)遍历
4. 拼接,字符串拼接,url拼接
5. ⽤下标取list的元素
6. 字符串截取
thyme源代码:出处
源代码相关
<tr th:each="up,stat : ${list}">
<td th:text="${up.version}">1.0</td>
<td th:text="${up.code}">1</td>
<td th:text="${up.type}">A</td>
<td th:text="${up.minVersion}">1.0</td>
<td th:text="${up.ismust}">Y</td>
<td th:text="${up.crtTime}">-</td>
<td th:text="${up.note}">更新说明</td>
<td th:text="${list2[stat.index].fileSize}">-</td>
<td th:text="${(up.fileSize/1024.0/1024.0)<1 ? #numbers.formatDecimal(up.fileSize/1024.0,0,2)+'KB' : #numbers.formatDecimal(up.fileSize/1024.0/1024.0,0,2)+    <td th:text="${(up.fileUrl).substring((up.fileUrl).lastIndexOf('/')+1)}"></td>
<td>
<a th:href="|@{/file/download}?id=${up.id}|" target="_blank">下载</a>
</td>
</tr>
1. 遍历后端传回list,th:each="up,stat : ${list}"up list的item;stat 状态变量,有 index,count,size,current,even,odd,first,last等属性
2. ${list2[stat.index].fileSize} 使⽤下标stat.index 获取item ${list2[stat.index]},整句意思是获取集合list2下标为stat.index 元素的fileSize属
3. th:text="${(up.fileSize/102
4.0/1024.0)<1 ? #numbers.formatDecimal(up.fileSize/1024.0,0,2)+'KB' :
#numbers.formatDecimal(up.fileSize/1024.0/1024.0,0,2)+'MB'}"
最长的⼀句。先拆分解析${(xxx)<1?aaa:bbb},这是⼀个三元运算,表达式(xxx)是否⼩于1,是执⾏aaa;否执⾏bbb。
4. #numbers.formatDecimal(up.fileSize/1024.0,0,2)+'KB' 这是⼀个⼤坑up.fileSize/1024这是整数运算,计算结果为整数
型;up.fileSize/1024.0 这是浮点数运算,计算结果为浮点型。
#numbers.formatDecimal(123.456,0,2) 格式化数字123.456 保留⼩数点后2位。语法#numbers.formatDecimal(numbwe,整数位,⼩数位)。
注意:指定整数位不为0,表⽰位数不⾜⽤0补齐,例:#numbers.formatDecimal(3.456,2,2) 结果为03.45
5. ${(up.fileUrl).substring((up.fileUrl).lastIndexOf('/')+1)} 截取up.fileUrl最后⼀个/之后的。例:D:/localwork/app/v_1.0_a.apk截取出来的
是v_1.0_a.apk