解决Thymeleaf中onclick的坑

 更新时间:2025年08月06日 14:13:50   作者:离颜i  
Thymeleaf中onclick属性无法直接传递字符串参数,需改用data-*属性存储,再通过JS读取,避免模板解析错误,但可能仍有警告

Thymeleaf中onclick的坑

最近学了springboot,springboot推荐使用thymeleaf模板,所以一直在用,然后发现许许多多的坑,这次就说说其中关于onclick的坑。

在一个button元素中,需要调用js的方法,并且传递两个来自model的参数,一开始我是这么写的

<button 
    th:onclick=" 'cookOver(' + ${item.getOid()} + ',' + ${item.getFid()} + ')' " >出餐
</button>

接下来加载html就报错了

报错信息如下:

org.thymeleaf.exceptions.TemplateProcessingException: 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: "/manage/cookWindow" - line 32, col 13)

神奇的是:同一个项目中的另一个HTML中,也是这样的写法,没有报错,成功运行,参数传递也都没有问题。

百思不得其解

于是到网上查了下,发现还有一种另写法,我就试了试

<button 
    th:onclick="cookOver([[${item.getOid()}]],[[${item.getFid()}]])">出餐
</button>

结果出现这样的问题:

这个问题很神奇,不影响正常运行,但这个红色波浪线让我非常难受

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解SpringBoot restful api的单元测试

    详解SpringBoot restful api的单元测试

    本篇文章主要介绍了详解SpringBoot restful api的单元测试,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java实现的决策树算法完整实例

    Java实现的决策树算法完整实例

    这篇文章主要介绍了Java实现的决策树算法,简单描述了决策树的概念、原理,并结合完整实例形式分析了java实现决策树算法的相关操作技巧,代码中备有较为详尽的注释便于理解,需要的朋友可以参考下
    2017-11-11
  • 简介Java的Hibernate框架中的Session和持久化类

    简介Java的Hibernate框架中的Session和持久化类

    这篇文章主要介绍了Java的Hibernate框架中的Session和持久化类,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • java中的Arrays这个工具类你真的会用吗(一文秒懂)

    java中的Arrays这个工具类你真的会用吗(一文秒懂)

    这篇文章主要介绍了java中的Arrays这个工具类你真的会用吗,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • SpringBoot动态定时任务实现与应用详解

    SpringBoot动态定时任务实现与应用详解

    定时任务在许多应用场景中是必不可少的,特别是在自动化任务执行、定期数据处理等方面,定时任务能极大地提高系统的效率,然而,随着业务需求的变化,定时任务的执行频率或时间点可能需要动态调整,所以本文给大家介绍了SpringBoot动态定时任务实现与应用
    2024-08-08
  • 深入浅析drools中Fact的equality modes

    深入浅析drools中Fact的equality modes

    这篇文章主要介绍了drools中Fact的equality modes的相关知识,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Java Swing组件下拉菜单控件JComboBox用法示例

    Java Swing组件下拉菜单控件JComboBox用法示例

    这篇文章主要介绍了Java Swing组件下拉菜单控件JComboBox用法,结合具体实例形式分析了Swing组件下拉菜单控件JComboBox的具体定义、使用方法及相关使用注意事项,需要的朋友可以参考下
    2017-11-11
  • JAVA多线程处理for循环数据详细讲解

    JAVA多线程处理for循环数据详细讲解

    这篇文章主要给大家介绍了关于JAVA多线程处理for循环数据的相关资料,我们在代码中经常需要使用for循环这个操作来达到目的,而当for循环的次数过多时我们会发现执行效率会变的很低,整体耗时非常多,需要的朋友可以参考下
    2023-07-07
  • SpringBoot使用Minio进行文件存储的实现

    SpringBoot使用Minio进行文件存储的实现

    本文主要介绍了SpringBoot使用Minio进行文件存储的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • java实现饭店点菜系统

    java实现饭店点菜系统

    这篇文章主要为大家详细介绍了java实现饭店点菜系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论