1. thymeleaf模板。。。包含js。。。使用了if(a && b) 然後 && 不能通過模板引擎的解析。。。
/*<![CDATA[*/
if(a&&b){
//...
}
/*]]>*/
首尾增加這樣的注釋一樣的聲明,由於thymeleaf是採用xml解析的方式進行替換的,所以javascript中&這樣的xml實體版轉義字元會被識權別為轉義,所以會出sax解析錯誤
2. thymeleaf已知數組下標怎麼取值
可以用thymeleaf 的 th:each迭代循環,th:each="obj,iterStat:${objList}"第一個是當前循環的元素,第二個參數是下標,那麼就可以取出list的所元素及屬性做判斷。
3. thymeleaf的th:each怎麼遍歷js中的數組
Spring Boot & thymeleaf模板 使用 th:each 遍歷對象數組 -生成一批html標簽體 在controller中取出emps 對象數組 //1.查詢所有的員工,返回列表頁面
4. thymeleaf 怎麼使用js獲取model
簡單說, Thymeleaf 是一個跟 Velocity、FreeMarker 類似的模板引擎,它可以完全替代 JSP 。相較與其他的模板引擎,它有如下三個極吸引人的特點:
1.Thymeleaf 在有網路和無網路的環境下皆可運行,即它可以讓美工在瀏覽器查看頁面的靜態效果,也可以讓程序員在伺服器查看帶數據的動態頁面效果。這是由於它支持 html 原型,然後在 html 標簽里增加額外的屬性來達到模板+數據的展示方式。瀏覽器解釋 html 時會忽略未定義的標簽屬性,所以 thymeleaf 的模板可以靜態地運行;當有數據返回到頁面時,Thymeleaf 標簽會動態地替換掉靜態內容,使頁面動態顯示。
2.Thymeleaf 開箱即用的特性。它提供標准和spring標准兩種方言,可以直接套用模板實現JSTL、 OGNL表達式效果,避免每天套模板、該jstl、改標簽的困擾。同時開發人員也可以擴展和創建自定義的方言。
3.Thymeleaf 提供spring標准方言和一個與 SpringMVC 完美集成的可選模塊,可以快速的實現表單綁定、屬性編輯器、國際化等功能。
標准表達式語法
它們分為四類:
1.變數表達式
2.選擇或星號表達式
3.文字國際化表達式
4.URL表達式
變數表達式
變數表達式即OGNL表達式或Spring EL表達式(在Spring術語中也叫model attributes)。如下所示:
${session.user.name}
它們將以HTML標簽的一個屬性來表示:
選擇(星號)表達式
選擇表達式很像變數表達式,不過它們用一個預先選擇的對象來代替上下文變數容器(map)來執行,如下:
*{customer.name}
被指定的object由th:object屬性定義:
文字國際化表達式
文字國際化表達式允許我們從一個外部文件獲取區域文字信息(.properties),用Key索引Value,還可以提供一組參數(可選).
可以在模板文件中找到這樣的表達式代碼:
URL表達式
URL表達式指的是把一個有用的上下文或回話信息添加到URL,這個過程經常被叫做URL重寫。
@{/order/list}
URL還可以設置參數:
@{/order/details(id=${orderId})}
相對路徑:
@{../documents/report}
讓我們看這些表達式:
變數表達式和星號表達有什麼區別嗎?
如果不考慮上下文的情況下,兩者沒有區別;星號語法評估在選定對象上表達,而不是整個上下文
什麼是選定對象?就是父標簽的值,如下:
這是完全等價於:
當然,美元符號和星號語法可以混合使用:
表達式支持的語法
字面(Literals)
文本文字(Text literals):'one text', 'Another one!',…
數字文本(Number literals):0, 34, 3.0, 12.3,…
布爾文本(Boolean literals):true, false
空(Null literal):null
文字標記(Literal tokens):one, sometext, main,…
文本操作(Text operations)
字元串連接(String concatenation):+
文本替換(Literal substitutions):|The name is ${name}|
算術運算(Arithmetic operations)
二元運算符(Binary operators):+, -, *, /, %
減號(單目運算符)Minus sign (unary operator):-
布爾操作(Boolean operations)
二元運算符(Binary operators):and, or
布爾否定(一元運算符)Boolean negation (unary operator):!, not
比較和等價(Comparisons and equality)
比較(Comparators):>, <, >=, <= (gt, lt, ge, le)
等值運算符(Equality operators):==, != (eq, ne)
條件運算符(Conditional operators)
If-then:(if) ? (then)
If-then-else:(if) ? (then) : (else)
Default: (value) ?:(defaultvalue)
所有這些特徵可以被組合並嵌套:
5. thymeleaf在js中怎麼寫路徑
可以使用Thymeleaf提供的內聯元素:[[]]
<script type="text/javascript" th:inline="javascript"> /*<![CDATA[*/
console.log(/*[[@{相對地址}]]*/); /*]]>*/</script>
console.log(/*[[@{相對地址}]]*/);裡面的/**/作用是為了不讓編輯器報錯。
通過內聯元素還可以在js中獲取元素,和在Thymeleaf頁面中一樣。