众妙之门

业精于勤,荒于嬉;行成于思,毁于随

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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>

这样在使用的时候会转义,才能正确使用

["\u7528\u6237\u6A21\u5757","\u8BBE\u5907\u6A21\u5757","\u9A7E\u9A76\u8231"]

注:内联语法

内联: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';
/* -]*/
posted on 2020-05-12 17:11  xuanm  阅读(264)  评论(0编辑  收藏  举报