鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ thymeleaf渲染layui.js的“col:[[]]”里面的內(nèi)容失敗

thymeleaf渲染layui.js的“col:[[]]”里面的內(nèi)容失敗

我是使用的layui的table數(shù)據(jù)表格模塊,然后thymeleaf渲染的時候失敗,報錯的位置提示在 cols:[[...]],就是[[]]里面的內(nèi)容不能渲染,應(yīng)該怎么改才能渲染。

前端代碼

table.render({
            elem: '#demo' //指定原始表格元素選擇器(推薦id選擇器)
            ,url:"http://localhost:80/api/file/txt/list"
            ,page: true
            ,method: 'get'
            ,where: {token: $.cookie("token")}
            ,limit: 10 //默認采用10條
            ,loading: true
            ,id:'idTest'
            ,cols: [[
                {checkbox: true, fixed: true}
                , {field: 'originalFileName', title: '文件名', width: 400, sort: true}
                , {field: 'fileType', title: '文件類型', width: 100}
                , {field: 'fileSize', title: '文件大小', width: 110, sort: true}
                , {field: 'createTime', title: '上傳時間', width: 170, sort: true}
                , {field: 'dpStatus', title: '數(shù)據(jù)處理狀態(tài)', width: 122, templet: '#statusTpl', sort: true}
                , {field: 'updateTime', title: '數(shù)據(jù)處理完成時間', width: 170, templet: '#updateTimeTpl', sort: true}
                , {fixed: 'right', title: '操作', align: 'center', width: 300, toolbar: '#operating'}
            ]] //設(shè)置表頭
            ,request: {
                pageName: 'pageNum' //頁碼的參數(shù)名稱,默認:page
                ,limitName: 'pageSize' //每頁數(shù)據(jù)量的參數(shù)名,默認:limit
            }
            ,response: {
                statusName: 'code' //數(shù)據(jù)狀態(tài)的字段名稱,默認:code
                ,statusCode: 200 //成功的狀態(tài)碼,默認:0
                ,msgName: 'message' //狀態(tài)信息的字段名稱,默認:msg
                ,countName: 'total' //數(shù)據(jù)總數(shù)的字段名稱,默認:count
                ,dataName: 'rows' //數(shù)據(jù)列表的字段名稱,默認:data
            }
            //,…… //更多參數(shù)參考右側(cè)目錄:基本參數(shù)選項
        });

報錯信息

2017-11-01 12:51:46.491 ERROR 11068 --- [p-nio-80-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/textManagement.html]")] with root cause

org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "
                {checkbox: true, fixed: true}
                , {field: 'originalFileName', title: '文件名', width: 400, sort: true}
                , {field: 'fileType', title: '文件類型', width: 100}
                , {field: 'fileSize', title: '文件大小', width: 110, sort: true}
                , {field: 'createTime', title: '上傳時間', width: 170, sort: true}
                , {field: 'dpStatus', title: '數(shù)據(jù)處理狀態(tài)', width: 122, templet: '#statusTpl', sort: true}
                , {field: 'updateTime', title: '數(shù)據(jù)處理完成時間', width: 170, templet: '#updateTimeTpl', sort: true}
                , {fixed: 'right', title: '操作', align: 'center', width: 300, toolbar: '#operating'}
            " (template: "textManagement" - line 125, col 22)
    at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:131)
    at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:62)
    at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:44)
    at org.thymeleaf.engine.EngineEventUtils.parseAttributeExpression(EngineEventUtils.java:220)
    at org.thymeleaf.engine.EngineEventUtils.computeAttributeExpression(EngineEventUtils.java:207)
    at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:67)
    at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74)
    at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95)
    at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633)
    at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314)
    at org.thymeleaf.engine.TemplateHandlerAdapterMarkupHandler.handleOpenElementEnd(TemplateHandlerAdapterMarkupHandler.java:304)
    at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler$InlineMarkupAdapterPreProcessorHandler.handleOpenElementEnd(InlinedOutputExpressionMarkupHandler.java:278)
    at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.performInlining(OutputExpressionInlinePreProcessorHandler.java:440)
    at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.handleText(OutputExpressionInlinePreProcessorHandler.java:146)
    at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleText(InlinedOutputExpressionMarkupHandler.java:80)
    at org.attoparser.HtmlMarkupHandler.handleText(HtmlMarkupHandler.java:208)
    at org.attoparser.AbstractChainedMarkupHandler.handleText(AbstractChainedMarkupHandler.java:203)
    at org.attoparser.MarkupParser.parseBuffer(MarkupParser.java:557)
    at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:301)
    at org.attoparser.MarkupParser.parse(MarkupParser.java:257)
    at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230)
    at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parseStandalone(AbstractMarkupTemplateParser.java:100)
    at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:666)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098)
    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072)
    at org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:353)
    at org.thymeleaf.spring4.view.ThymeleafView.render(ThymeleafView.java:191)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:105)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)```
回答
編輯回答
故人嘆

new array 或新建一個單括號數(shù)組后把數(shù)據(jù) push 進去

2017年4月25日 18:45
編輯回答
別瞎鬧

[[]]是thymeleaf的內(nèi)聯(lián)表達式,可以在cols的后面換行

, cols: [
            [ //表頭
                {field: 'xxx', title: 'ID', width: 80, sort: true, fixed: 'left'}
                , {field: 'xxx', title: '記錄日期', width: 80}
                , {field: 'xxx', title: '操作人ID', width: 80, sort: true}
                , {field: 'xxx', title: '', width: 80}
                , {field: 'xxx', title: '簽名', width: 177}
                , {field: 'xxx', title: '積分', width: 80, sort: true}
                , {field: 'xxx', title: '評分', width: 80, sort: true}
                , {field: 'xxx', title: '職業(yè)', width: 80}
                , {field: 'xxx', title: '財富', width: 135, sort: true}
            ]
        ]

或者在script標簽里 th:inline="none" 就可以了

2018年8月31日 12:53
編輯回答
單眼皮

[[…]]之間的表達式在Thymeleaf被認為是內(nèi)聯(lián)表達式,在其中您可以使用任何類型的表達式,也會有效th:text屬性。
我也沒找到解決辦法。只要要不換一個模板引擎,要不就換個分頁的js。我選擇了前者。

2017年9月18日 22:44