JS中使用thymeleaf表达式小坑
百度了一堆都是让加上th:inline="javascript"后就能识别的,但是路径'/'总会被转义,事实就是加上之后的表达式内的特殊字符会被转义,而JS不用加上这句话只需要用[[]]包裹表达式就可以自动识别出表达式,果然不转义了
<script th:inline="javascript">
...
</script>
<script>
functin login(){
var form = document.getDocumentById("form");
form.action = [[@{/login]];
form.submit();
}
</script>
th:onclick传的参数需要用[[]]包起来
<a class="btn" th:onclick="add([[${user.id}]])" title="添加"></a>
前端渲染的数据格式化方法
日期时间格式化:${#calendars.format(date,'')}
<td th:text="${#calendars.format(order.time, 'yyyy-MM-dd HH:mm:ss')}"></td>
数字格式化:左补0:${#numbers.formatInteger(num,8)}"
<td th:text="${#numbers.formatInteger(order.id, 8)}"></td>
th:style
可以根据判断结果动态修改样式,用的不是很熟,不是很清楚格式,百度了之后照抄的格式,用起来没问题
<div th:style="'display:'+ @{(${session.user != null}?'none':'block')}+''">
</div>
thymeleaf兼容了很多的html标签,包括它们内部的属性,有个需求要根据用户的状态修改input框能否输入,百度找了很久没找到,结果翻官方文档的时候看见th:readonly,试了一下就是这个
<input th:readonly="${session.user == null}">
以上就是初学thymeleaf并第一次用它做项目的时候碰到的一些问题,希望可以帮到和我一样的初学者。学一门技术还是得多看官方文档和多用!