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陣列
- javascript陣列定義JavaScript陣列
- SpringMVC thymeleaf 關於layout使用的一些心得SpringMVC
- js陣列的一些用法JS陣列
- JS陣列追加陣列採用push.apply的坑JS陣列APP
- js:陣列自定義排序JS陣列排序
- JAVA陣列的定義及用法Java陣列
- java 陣列的定義(宣告)方法Java陣列
- Java 定義長度為 0 的陣列 / 空陣列Java陣列
- 關於js陣列方法sort()負數排序的陷阱JS陣列排序
- GO 陣列-多種定義Go陣列
- js陣列常見的一些方法JS陣列
- JS陣列中的apply含義JS陣列APP
- 關於樹狀陣列一些有意思的東西陣列
- python怎麼定義陣列Python陣列
- 關於陣列去重陣列
- 關於Gson和FastJson的坑ASTJSON
- 關於在類陣列中使用陣列方法陣列
- 一個關於JS解決陣列相乘問題JS陣列
- js中關於定義類的幾種方式介紹JS
- **關於PHP如何定義一個空物件(RESTAPI如何處理空物件和空陣列)PHP物件RESTAPI陣列
- c#二維陣列定義宣告C#陣列
- TS定義陣列 ts宣告函式陣列函式
- js中陣列的一些常見操作 - 1JS陣列
- c中關於指標的宣告和定義的一些問題指標
- js實現的陣列自定義排序介紹JS陣列排序
- thymeleaf的坑(持續更新。。。)
- 關於js的冒泡--新手踩坑案例JS
- vue 關於陣列和物件的更新Vue陣列物件
- 關於字典和陣列的疑問陣列
- oracle中關於null的定義OracleNull
- json陣列和json物件的包含關係JSON陣列物件
- 關於angularJS的一些用法AngularJS
- CoffeeScript攻略4.5:定義陣列範圍陣列
- 實體類定義陣列物件,和物件陣列物件
- 關於 KMP next 陣列的應用KMP陣列