thymeleaf中js 取值

原创
2016/07/22 14:52
阅读数 5.5W

今天又学习了一招

js获取thymeleaf中的变量的值

<script th:inline="javascript">
var data = [[${data}]]
//var dd="&&"+"<";
</script>

 另外一种就是使用隐藏域:

<input type="hidden" th:value=“${data} ” id="data">  

js :  var data=${"#data"}.val()

另外之前经理的博客有这一段:

不明白里面的含义:先贴在这里:

内联文本:[[...]]内联文本的表示方式,使用时,必须先用th:inline="text/javascript/none"激活,th:inline可以在父级标签内使用,甚至作为body的标签。内联文本尽管比th:text的代码少,但是不利于原型显示。

内联js:
<scriptth:inline="javascript">
/*<![CDATA[*/
...
var username = /*[[${sesion.user.name}]]*/ 'Sebastian';
...
/*]]>*/
</script>

js附加代码:
/*[+
var msg = 'This is a working application';
+]*/

js移除代码:
/*[- */
var msg = 'This is a non-working template';
/* -]*/

 

thymeleaf中js的转义问题(thymeleaf3.0试验未成功,估计是用的thymeleaf2.0,未测)

请直接这样用:

<script th:inline="javascript">
<![CDATA[
      $(window).load(function(){  
         xxxx(其中包含了&&这种需要转义的字符)
    }); 
]]>
</script>


<![CDATA[ ]]>加上后可防止里面有特殊字符例如< >&,用这个东西包裹的内容会忽略所有的特殊字符。
必须这样用,否则应该是无解,竟然用html中转义的&amp;也是不行的,大家注意下。



另外,以上方法都搞不定,还有一招:直接将js移至外部文件一般均可治愈

再贴一点

window.location.href=[[@{/logout}]];    使用@符号,他就会自己在路径 中加上工程路径(未测)

 

展开阅读全文
打赏
0
4 收藏
分享
加载中
更多评论
打赏
0 评论
4 收藏
0
分享
返回顶部
顶部