Thymeleaf标签内,js中使⽤表达式
在⽂本中使⽤表达式
当然,我们同样可以在标签内赋值。
<p>Hello, [[${session.user.name}]]!</p>
效果和下⾯⼀样:
<p>Hello, <span th:text="${session.user.name}">Sebastian</span>!</p>
[[…]]之间的内容可以被赋值。为了使其⽣效,必须在此标签或者任何⽗标签上有th:inline属性。此属性有三种值(text , javascript and none)。text属性的⽤法:
<p th:inline="text">Hello, [[${session.user.name}]]!</p>
也可以在⽗标签上有此属性:
<body th:inline="text">
...
<p>Hello, [[${session.user.name}]]!</p>
...
</body>
在javaScript中使⽤表达式
给js变量赋值
表达式同样可以在javascript中使⽤。先⽤属性声明⼀下:javascript ( th:inline=”javascript” ),然后我们开始在js中声明变量:
<script th:inline="javascript">
/*<![CDATA[*/
...
var username = /*[[${session.user.name}]]*/ 'Sebastian';
...
/*]]>*/
</script>
/*[[…]]*/表达式的理解如下:
1. /*…*/中的内容在⽤浏览器打开静态 ⽹页时,会被忽略
2. ‘Sebastian’会在浏览器中显⽰。静态时。
3. Thymeleaf解析时,会解析/*[[…]]*/的内容,并把获得的值替换掉/*[[…]]*/后⾯的内容。
所以执⾏的结果如下:
<script th:inline="javascript">
/*<![CDATA[*/
...
var username = 'John Apricot';
.
..
/*]]>*/
</script>
你也可以不⽤注释:
<script th:inline="javascript">
/*<![CDATA[*/
...
var username = [[${session.user.name}]];
...
/*]]>*/
</script>
这会让它在静态显⽰时出现错误。
注意:引擎求值后注⼊是智能的,它可以智能赋值⼀下类型的数据。
Strings
Numbers
Booleans
Arrays
Collections
Maps
Beans (objects with getter and setter methods)
举个栗⼦:
script th:inline="javascript">
/
*<![CDATA[*/
...
var user = /*[[${session.user}]]*/ null;
...
/*]]>*/
</script>
${session.user}会获取⼀个user对象。写⼊后如下:
<script th:inline="javascript">
thymeleaf用法/*<![CDATA[*/
...
var user = {'age':null,'firstName':'John','lastName':'Apricot',
'name':'John Apricot','nationality':'Antarctica'};
...
/*]]>*/
</script>
引擎同样允许增加和删除代码块,增加代码块:
var x = 23;
/*[+
var msg = 'This is a working application';
+]*/
var f = function() {
...
解析如下:
var x = 23;
var msg = 'This is a working application';
var f = function() {
...
删除代码块:
var x = 23;
/*[- */
var msg = 'This is a non-working template';
/* -]*/
var f = function(){
.
..
解析如下:
var x = 23;
var f = function(){
...

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。