zoukankan      html  css  js  c++  java
  • layui表格数据渲染SpringBoot+Thymeleaf返回的数据时报错(Caused by: org.attoparser.ParseException: Could not parse as expression: ")

    layui table渲染数据时报错(Caused by: org.attoparser.ParseException: Could not parse as expression: ")

    1. 后端环境:Springboot + thymeleaf
    2. 渲染数据报错
    Caused by: org.attoparser.ParseException: Could not parse as expression: "
                    {type: 'checkbox'}
                    ,{field:'id', title:'ID', 80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计'}
                    ,{field:'name', title:'姓名', 120, edit: 'text'}
                    ,{field:'age', title:'年龄', 80, sort: true, totalRow: true}
                    ,{field:'sex', title:'性别', 80, edit: 'text', sort: true}
                    ,{fixed: 'right', title:'操作', toolbar: '#barDemo', 150}
                " (template: "admin" - line 72, col 22)
    	at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:393) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE]
    	at org.attoparser.MarkupParser.parse(MarkupParser.java:257) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE]
    	at org.thymeleaf.templateparser.markup.AbstractMarkupTemplateParser.parse(AbstractMarkupTemplateParser.java:230) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	... 48 common frames omitted
    Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "
                    {type: 'checkbox'}
                    ,{field:'id', title:'ID', 80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计'}
                    ,{field:'name', title:'姓名', 120, edit: 'text'}
                    ,{field:'age', title:'年龄', 80, sort: true, totalRow: true}
                    ,{field:'sex', title:'性别', 80, edit: 'text', sort: true}
                    ,{fixed: 'right', title:'操作', toolbar: '#barDemo', 150}
                " (template: "admin" - line 72, col 22)
    	at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:131) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:62) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.standard.expression.StandardExpressionParser.parseExpression(StandardExpressionParser.java:44) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.engine.EngineEventUtils.parseAttributeExpression(EngineEventUtils.java:220) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.engine.EngineEventUtils.computeAttributeExpression(EngineEventUtils.java:207) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:125) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.engine.TemplateHandlerAdapterMarkupHandler.handleOpenElementEnd(TemplateHandlerAdapterMarkupHandler.java:304) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler$InlineMarkupAdapterPreProcessorHandler.handleOpenElementEnd(InlinedOutputExpressionMarkupHandler.java:278) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.performInlining(OutputExpressionInlinePreProcessorHandler.java:440) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.standard.inline.OutputExpressionInlinePreProcessorHandler.handleText(OutputExpressionInlinePreProcessorHandler.java:146) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.thymeleaf.templateparser.markup.InlinedOutputExpressionMarkupHandler.handleText(InlinedOutputExpressionMarkupHandler.java:80) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE]
    	at org.attoparser.HtmlMarkupHandler.handleText(HtmlMarkupHandler.java:208) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE]
    	at org.attoparser.AbstractChainedMarkupHandler.handleText(AbstractChainedMarkupHandler.java:203) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE]
    	at org.attoparser.MarkupParser.parseBuffer(MarkupParser.java:557) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE]
    	at org.attoparser.MarkupParser.parseDocument(MarkupParser.java:301) ~[attoparser-2.0.5.RELEASE.jar:2.0.5.RELEASE]
    	... 50 common frames omitted
    
    
    1. js渲染数据的代码
    table.render({
            elem: '#test'
            ,method: 'GET'
            ,url:'/api/students'
            ,toolbar: '#toolbarDemo'
            ,title: '用户数据表'
            ,totalRow: true
            ,cols: [[
                {type: 'checkbox'}
                ,{field:'id', title:'ID', 80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计'}
                ,{field:'name', title:'姓名', 120, edit: 'text'}
                ,{field:'age', title:'年龄', 80, sort: true, totalRow: true}
                ,{field:'sex', title:'性别', 80, edit: 'text', sort: true}
                ,{fixed: 'right', title:'操作', toolbar: '#barDemo', 150}
            ]]
            ,page: true
            ,parseData: function(res){ //res 即为原始返回的数据
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.msg, //解析提示文本
                    "count": res.count, //解析数据长度
                    "data": res.data //解析数据列表
                };
            }
        });
        
    

    【解决方式】

    1. 把col后面的[[]]变为
    [
        [
            //TODO
        ]
    ]
    

    原因: 因为[[…]]之间的表达式在thymeleaf被认为是内联表达式,所以渲染错误

    参考博客https://blog.csdn.net/ystyaoshengting/article/details/84773952

  • 相关阅读:
    J2EE开发工作中遇到的异常问题及解决方法总结
    报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
    配置JAVA的环境变量
    win7系统下ping不是内部或外部命令
    【pyhon】理想论坛单帖爬虫取得信息存入MySql数据库
    【Python】安装Python的mysql模块
    【Python】爬取理想论坛单帖爬虫
    挖一口井最好的时间除了十年前就是现在
    【Python】http.client库的用法
    【pyhon】nvshens按目录图片批量下载爬虫1.00(多线程版)
  • 原文地址:https://www.cnblogs.com/baijinqiang/p/12489325.html
Copyright © 2011-2022 走看看