thymeleaf在工作中遇到的问题及解决办法(四)
2017-08-08 00:00
344 查看
1、关于字符串拼接的问题
字符串拼接可以使用如下方式。<a href="#" th:text="第+${StartNo}+页 +' '+共+${countPage}+页">
还有一种更优雅的方式,使用“||”减少了字符串的拼接,代码如下。
<a href="#" th:text="|第${StartNo}页 共${countPage}页|">
2、关于URL表达式中传参的问题
这个问题也比较常遇到,比如想通过超链接删除数据库中某条数据,那么在超链接上就需要传入此数据的主键。如图,我要修改此用户那么就要在修改的超链接上把10064这个ID传进来。超链接传参代码如下,需要注意Thymeleaf对URL进行渲染,务必使用th:href,th:src属性 。
<a class="border-main" th:href="@{userPower(id=${user.Id})}"><span class="edit"></span> 修改
几点需要说明:
上例URL最后的(id=${user.Id})表示将括号内的内容作为URL参数处理,该语法避免使用字符串拼接,大大提高了可读性。
@{userPower}是Context相关的相对路径,在渲染时会自动添加上当前Web应用的Context名字,假设Context名字为Java,那么结果应该是/Java/userPower。
3、关于条件判断的补充
前面介绍了if的用法,接下来介绍一个与if用法相同但表达相反的属性 th:unless ,两者都是条件判断,if表示表达式成立则执行动作,而unless表示表达式中的条件不成立,才会执行动作。thymeleaf还有一种类似Java中的三元运算符的用法,代码如下。
<input th:text="(${user.isAdmin}?'管理员':'普通用户')"></input>
4、关于特殊字符的转义
比较: > , < , >= , <= ( gt , lt , ge , le )相等算法: == , != ( eq , ne )
5、关于一些其他的常用内置对象
Controller代码:@RestController public class IndexController { @PostMapping("toIndex") public String toIndex(Model model) { List<String> datas = new ArrayList<String>(); datas.add("二十岁以后"); datas.add("995600491"); model.addAttribute("datas", datas); model.addAttribute("curDate", new Date()); model.addAttribute("number", Math.random()*100); return "index"; } }
上面的代码,包含了工作中常使用的数据类型,有集合,时间类型,数值类型,下面我们使用thymeleaf的内置对象来解析他们。
使用#lists.size来获取List的长度。
<span th:text="${#lists.size(datas)}"></span>
对于日期的格式化,与java中的SimpleDateFormat类似,第一个参数是后台传来的key,第二个参数是设置日期的格式
<span th:text="${#dates.format(curDate, 'yyyy-MM-dd HH:mm:ss')}"></span>
对于数值,我们可以对其这样操作。
<span th:text="${#numbers.formatDecimal(number, 0, 3)}"></span>
解释:保留三位小数, 整数位自动。
<span th:text="${#numbers.formatDecimal(number,3,1)}"></span>
解释: 保留1位小数位,3位整数位(不够的前面加0) 。
特别提示:
内置对象前都需要加#号。
内置对象一般都以s结尾。
其他常用内置对象:
#numbers: 数字格式化; #strings:字符串格式化,参照java.lang.String; #bools:判断boolean类型; #lists:集合操作的工具,参照java.util.List; #sets:Set集合操作工具,参照java.util.Set; #maps:Map集合操作工具,参照java.util.Map; #dates:日期格式化,参照java.util.Date;
相关文章推荐
- 工作中遇到的问题解决办法
- 工作中遇到的问题及解决办法11
- 工作遇到的问题和解决办法5
- 工作中遇到的问题及解决办法14
- 工作中遇到的问题和解决办法10
- 工作中遇到的问题及解决办法(1)
- 近期工作中遇到的问题及其解决办法
- 工作遇到的问题和解决办法6
- 工作中遇到的问题及解决办法12
- 工作中遇到的问题及解决办法16
- 工作中遇到的问题和解决办法7
- 工作中遇到的问题和解决办法9
- 工作中遇到的问题和解决办法13
- 工作中遇到的问题及解决办法18(hibernate)
- 工作中遇到的问题及解决办法15
- LoadRunner在性能测试工作中遇到的问题以及解决办法小结
- 工作遇到的问题和解决办法3
- LoadRunner在性能测试工作中遇到的问题以及解决办法小结
- 工作遇到的问题和解决办法2
- 工作中遇到的问题和解决办法8(could not initialize a collection的问题)