• thymeleaf-接上一篇的mvc项目


              thymeleaf中在html页面如果想要使用js函数,而且想传入java对象中的值,首先th:表签必须要有,否则html页面是无法正确获取到相应的java数据的,其次thymeleaf中对字符串的处理也有很多种方式,最简单的就是可以使用+直接相加来拼凑,但是因为在html页面中和.java环境下写代码还是有区别的,所以在处理js函数的时候也是需要小心处理,下面的例子可以正确的调用js函数,并将后台传入的值送入js函数中:

     其中转义字符是双引号的写法。

     字符串和[[${*}]]thymelaf表达式是可以直接写在一起的,这样写并不需要th表签。

    另外,thymeleaf中的th:if表签,在false的情况下,html元素其实是不存在的,就是说它和css中的display="none"是不一样的,当为false的情况下,所有以内的元素其实是相当于消失的,这种情况下在js中调用这里面的元素js会报错。

    ****************

    2021年10月7日21点44分:

    <th><input type="button" th:onclick="'submit2(&quot;'+${mongor.uuid}+'&quot;);'" value="选择"/></th>
    当按照上面的形式的时候,是会报如下错误,这是因为thymeleaf防止注入攻击做了安全升级。因此当从对象中获取属性值进行填充的时候,需要使用[[]]进行获取值。

    Only variable expressions returning numbers or booleans are allowed in this context, any other datatypes are not trusted in the context of this expression, including Strings or any other object that could be rendered as a text literal. A typical case is HTML attributes for event handlers (e.g. "onload"), in which textual data from variables should better be output to "data-*" attributes and then read from the event handler. (template: "title" - line 21, col 38)

    改成:<th><input type="button" th:onclick="submit2([[${mongor.uuid}]])" value="选择"/></th> 

    -----------------------

    2021年10月27日11点16分

    今天发现一样的错误

     我一直以为是我写js方法的时候又写错了,但是无论怎么改都是一样的报错,后来发现数据库中有一条数据很奇怪,这一条数据存在,但是每个字段的数据都是null,导致thymeleaf在解析对象属性值的时候,得到了一个空值,然后再往js方法中传值的过程中传入了null,然后就报了这样的错误,然后把那条错误的数据删除,或者对关键字段做判断即可解决此问题。

    ----------------------------
    2021年10月28日 10点42分

    上面的错误的解决办法也可以采用下面的办法

  • 相关阅读:
    MySQL 操作命令梳理(1)-- 索引
    Linux下对LVM逻辑卷分区大小调整 [针对xfs和ext4文件系统]
    CentOS6 虚拟机安装后,无Iptables配置文件
    Linux系统权限设置
    完整部署CentOS7.2+OpenStack+kvm 云平台环境(2)--云硬盘等后续配置
    完整部署CentOS7.2+OpenStack+kvm 云平台环境(3)--为虚拟机指定固定ip
    Android消息推送怎么实现?
    Android 下拉刷新
    Windows 10 周年更新正式版下载 + win10 快捷键
    markdown编辑器使用建议
  • 原文地址:https://www.cnblogs.com/YsirSun/p/15191534.html
Copyright © 2020-2023  润新知