我一直在使用thymeleaf th:onclick属性调用javascript具有以下参数的函数
thymeleaf
th:onclick
javascript
th:onclick="|myFunction('${parameter1}')|"
但与thymeleaf 3.1.10 此已被删除。并且他们建议使用th:data属性。
thymeleaf 3.1.10
th:data
但是,我发现了以下解决方法,并且它们都工作正常。
th:attr="onclick=|myFunction('${parameter1}')|"
th:onclick="@{myFunction('${parameter1}')}">
现在,我不确定这些变通办法是否是正确的处理方法,如果可以,哪种方法更好。
第一个将按您想要的方式工作-但是,您绕过了安全限制,现在您的页面容易受到javascript注入攻击(这是进行此更改的原始原因)。
第二个只是普通不起作用。它不会扩展变量${parameter1},而只是将其编码为以下网址:
${parameter1}
onclick="myFunction?$%7Bparameter1%7D"
您确实应该按照页面上所示进行操作。
th:data-parameter1="${parameter1}" onclick="myFunction(this.getAttribute('data-parameter1'));"