thymeleaf關於js的一些坑(陣列定義)
js中免不了的要用的陣列,一維的二維的三維的,但是當用到thymeleaf作為模版時候會有一些坑,導致陣列不能用
先來看個異常
Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "
{field:'checkBox',checkbox: true, fixed: true}
,{field:'username', title: '使用者名稱'} //width 支援:數字、百分比和不填寫。你還可以通過 minWidth 引數區域性定義當前單元格的最小寬度,layui 2.2.1 新增
,{field:'mobile', title: '手機號', sort: true}
,{field:'nickname', title: '暱稱'}
,{field:'lastLoginTime', title: '最後登入時間'}
,{field:'ip', title: '最後登入ip', align: 'center'} //單元格內容水平居中
,{field:'op',title: '操作', align:'center', toolbar: '#toolBars'} //這裡的toolbar值是模板元素的選擇器
" (template: "platform/user/list" - line 48, col 20)
at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:131) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:62) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:44) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.engine.EngineEventUtils.parseAttributeExpression(EngineEventUtils.java:220) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.engine.EngineEventUtils.computeAttributeExpression(EngineEventUtils.java:207) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:103) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.engine.TemplateModel.process(TemplateModel.java:136) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.engine.TemplateManager.process(TemplateManager.java:519) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.util.LazyProcessingCharSequence.writeUnresolved(LazyProcessingCharSequence.java:85) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.util.AbstractLazyCharSequence.write(AbstractLazyCharSequence.java:103) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.engine.AbstractTextualTemplateEvent.writeContent(AbstractTextualTemplateEvent.java:224) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.engine.Text.write(Text.java:78) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
at org.thymeleaf.engine.OutputTemplateHandler.handleText(OutputTemplateHandler.java:71) ~[thymeleaf-3.0.9.RELEASE.jar:3.0.9.RELEASE]
... 96 common frames omitted
這裡只接觸最外層異常,而出現異常的位置
<script>
var cols=[[
{field:'checkBox',checkbox: true, fixed: true}
,{field:'username', title: '使用者名稱'} //width 支援:數字、百分比和不填寫。你還可以通過 minWidth 引數區域性定義當前單元格的最小寬度,layui 2.2.1 新增
,{field:'mobile', title: '手機號', sort: true}
,{field:'nickname', title: '暱稱'}
,{field:'lastLoginTime', title: '最後登入時間'}
,{field:'ip', title: '最後登入ip', align: 'center'} //單元格內容水平居中
,{field:'op',title: '操作', align:'center', toolbar: '#toolBars'} //這裡的toolbar值是模板元素的選擇器
]];
</script>
乍一看,沒問題,也許對應用過thymeleaf的小夥伴來說一眼就看出了問題,但是對於新手確實很難發現,thymeleaf會把[[]]中的內容作為內聯取值塊解析,而不是陣列。
解決辦法:
方法一:回車換行如下:
<script>
var cols=[
[
{field:'checkBox',checkbox: true, fixed: true}
,{field:'username', title: '使用者名稱'} //width 支援:數字、百分比和不填寫。你還可以通過 minWidth 引數區域性定義當前單元格的最小寬度,layui 2.2.1 新增
,{field:'mobile', title: '手機號', sort: true}
,{field:'nickname', title: '暱稱'}
,{field:'lastLoginTime', title: '最後登入時間'}
,{field:'ip', title: '最後登入ip', align: 'center'} //單元格內容水平居中
,{field:'op',title: '操作', align:'center', toolbar: '#toolBars'} //這裡的toolbar值是模板元素的選擇器
]
];
</script>
方法二:新增th:inline="javascript"或者th:inline="none",預設是th:inline="text"
<script th:inline="none">
</script>
建議方法二,因為資料定義靠換行總覺得怪怪的,你說呢?
相關文章
- 關於 JS 陣列,物件 length 使用的坑JS陣列物件
- vue陣列操作遇到坑-關於陣列操作Vue陣列
- JavaScript關於陣列的一些方法整理JavaScript陣列
- js陣列的一些用法JS陣列
- js:陣列自定義排序JS陣列排序
- 關於js陣列方法sort()負數排序的陷阱JS陣列排序
- JAVA陣列的定義及用法Java陣列
- java 陣列的定義(宣告)方法Java陣列
- Java 定義長度為 0 的陣列 / 空陣列Java陣列
- js陣列常見的一些方法JS陣列
- GO 陣列-多種定義Go陣列
- python怎麼定義陣列Python陣列
- 一個關於JS解決陣列相乘問題JS陣列
- js中陣列的一些常見操作 - 1JS陣列
- 關於陣列去重陣列
- 關於在類陣列中使用陣列方法陣列
- TS定義陣列 ts宣告函式陣列函式
- vue 關於陣列和物件的更新Vue陣列物件
- LeetCode 關於陣列的相對排序LeetCode陣列排序
- JS陣列的方法JS陣列
- JS 陣列的用法JS陣列
- vue3+ts 定義props中的物件陣列Vue物件陣列
- JS陣列JS陣列
- ANSI C定義的一些關於可移植性的術語說明
- 實體類定義陣列物件,和物件陣列物件
- 有關js各種陣列遍歷JS陣列
- 紅寶書總結-js陣列的相關方法JS陣列
- 【基礎題】【陣列】定義並初始化陣列
- JS 陣列的迭代方法JS陣列
- 關於JS陣列中相同物件屬性值歸類方法的一點思考JS陣列物件
- js 陣列方法JS陣列
- js陣列排序JS陣列排序
- js偽陣列JS陣列
- PHP陣列轉換為js陣列PHP陣列JS
- 關於equals()和hashcode()的一些約定
- 關於二維陣列指標的問題陣列指標
- 深度理解vue 關於陣列和物件的更新Vue陣列物件
- js中關於base64的一些事JS