1.js总使用数组问题
在js中使用后台返回的List的时候,如:
List<String> XXX = new ArrayList<>();
在js中直接使用的时候
<script> var data = [[${data}]] </script>
List是汉字的时候,在js中直接使用的时候是没得引号的,会出错
[测试1, 测试2, 测试3]
需要在js上面添加,
<script th:inline="javascript"> var data = [[${data}]] </script>
这样在使用的时候会转义,才能正确使用
["u7528u6237u6A21u5757","u8BBEu5907u6A21u5757","u9A7Eu9A76u8231"]
注:内联语法
内联:th:inline,值有三种:text,javascript,none
1 th:inline="text"文本内联
<p th:inline="text">Hello, [[${session.user.name}]]!</p>
2 th:inline="javascript"脚本内联
<script th:inline="javascript"> /*<![CDATA[*/ ... var username = /*[[${session.user.name}]]*/ 'Amy Guo'; ... /*]]>*/ </script>
/*[[${session.user.name}]]*/在thymeleaf解释器解析代码时会解析里面的[[${session.user.name}]]
加载静态页时会解析注释后面的语句 var username = 'Amy Guo';
Tips: js内联代码中需要加入/*<![CDATA[*/ ...... /*]]>*/代码块,thymeleaf才能正确解析一些运算符(<等)和操作符号&/&&等。
另外,javascript内联时有以下两个特性:
(1)javascript附加代码
语法:/*[+ +]*/
/*[+ var msg = 'This is a working application'; +]*/
(2)javascript移除代码
语法:/*[- */ /* -]*/
/*[- */ var msg = 'This is a non-working template'; /* -]*/