thymeleaf模板引擎爲前端數據的獲取提供了較大的便利,在html標籤內可經過th標籤加${}表達式訪問model裏的對象數據。但若是不想經過th標籤而是簡單地訪問model對象數據,或是想在javascript代碼塊裏訪問model中的數據,則要使用內聯的方法。javascript
好比,咱們能夠這樣訪問對象:html
<p>Hello, [[${session.user.name}]]!</p>
以上代碼能夠取代下面的通常寫法:前端
<p>Hello, <span th:text="${session.user.name}">Sebastian</span>!</p>
Expressions between [[...]] or [(...)] are considered inlined expressions in Thymeleaf。即便用此語法的語句稱爲「內聯」。使用內聯的語句的確會更加簡潔一些。java
如果想在javascript代碼塊內直接地使用model的對象值,則必須經過內聯來實現。代碼以下:ajax
<script type="text/javascript" th:inline="javascript">
/*<![CDATA[*/
var max = /*[[${maxSumOfDateInYear}]]*/ 20;
alert(max);
/*]]>*/
</script>
其中第二、5行爲基於XML的轉義寫法,第3行把內聯訪問的語句用註釋引發來,且後面跟着一個空格20,是指若不存在此對象,則自動設置默認值爲20。express
注意以上的javascript內聯寫法是基於你須要「直接地」使用model對象值的場景。不然還有其它寫法,好比簡單地聲明一個hidden input:後端
<input type="hidden" id="maxSumOfDateInYear" th:value="${maxSumOfDateInYear}"/>
<script type="text/javascript" th:inline="none">
var max = $("#maxSumOfDateInYear").val();
var data = [["2012-05-07", 6], ["2012-04-16", 4]];
alert(max);
alert(data);
</script>
以上第1行聲明瞭一個hidden的maxSumOfDateInYear,而後第3行經過jQuery來間接訪問。數組
注意,若在thymeleaf代碼裏存在第4行的二維數組字面量的寫法,則必需要把javascript代碼塊設置爲inline爲none的,不然thymeleaf引擎會把此數組的[[也當成了內聯語句處理,從而致使後端報錯An error happened during template parsing。要麼,你就仍是經過hidden間接訪問的方式實現。session
或者,也能夠經過ajax直接獲取內容來實現。但這就屬與thymeleaf模板引擎計算過程無關了。app