【问题标题】:org.thymeleaf.exceptions.TemplateProcessingException: Only variable expressions returning numbers or booleans are allowed in this contextorg.thymeleaf.exceptions.TemplateProcessingException:在此上下文中只允许返回数字或布尔值的变量表达式
【发布时间】:2019-06-10 22:51:44
【问题描述】:

我一直使用thymeleafth:onclick属性调用javascript函数,参数如下

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

但是thymeleaf 3.1.10 this has been removed。他们建议使用th:data 属性。

然而,我找到了以下解决方法,并且它们都运行良好。

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

现在我不确定这些变通办法是否是正确的做事方式,如果是,哪个更好。

【问题讨论】:

    标签: spring-boot thymeleaf


    【解决方案1】:

    第一个将按您的意愿工作 - 但是,您绕过了安全限制,现在您的页面容易受到 javascript 注入(这是进行此更改的最初原因)。

    第二个简单的不起作用。它不会扩展变量${parameter1},而是将其编码为这样的 url:

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

    你真的应该按照页面上显示的那样做。

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

    【讨论】:

      猜你喜欢
      • 2019-09-06
      • 2019-03-26
      • 1970-01-01
      • 2017-02-05
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 2020-04-24
      相关资源
      最近更新 更多