小编典典

org.thymeleaf.exceptions.TemplateProcessingException:在此上下文中仅允许返回数字或布尔值的变量表达式

spring-boot

我一直在使用thymeleaf th:onclick属性调用javascript具有以下参数的函数

th:onclick="|myFunction('${parameter1}')|"

但与thymeleaf 3.1.10
此已被删除。并且他们建议使用th:data属性。

但是,我发现了以下解决方法,并且它们都工作正常。

  1. th:attr="onclick=|myFunction('${parameter1}')|"
  2. th:onclick="@{myFunction('${parameter1}')}">

现在,我不确定这些变通办法是否是正确的处理方法,如果可以,哪种方法更好。


阅读 881

收藏
2020-05-30

共1个答案

小编典典

第一个将按您想要的方式工作-但是,您绕过了安全限制,现在您的页面容易受到javascript注入攻击(这是进行此更改的原始原因)。

第二个只是普通不起作用。它不会扩展变量${parameter1},而只是将其编码为以下网址:

onclick="myFunction?$%7Bparameter1%7D"

您确实应该按照页面上所示进行操作。

th:data-parameter1="${parameter1}" onclick="myFunction(this.getAttribute('data-parameter1'));"
2020-05-30