代码之家  ›  专栏  ›  技术社区  ›  Joshep

将作为模型传递的变量添加到location.href of th:onclick时出错

  •  0
  • Joshep  · 技术社区  · 2 年前

    我试图使用通过在控制器中使用model.addattribute()获得的th:onclick的值,但我得到了一个错误。

    // work correctly
    th:onclick="|location.href='/announcement/' + ${list.id}|"
    
    // error occurs
    th:onclick="|location.href='/' + ${list.boardCategory} + '/' + ${list.id}|"
    

    “此上下文中只允许返回数字或布尔值的变量表达式,任何其他数据类型在此表达式的上下文中都不受信任,包括字符串或任何其他可以呈现为文本文本的对象。典型的情况是事件处理程序的html属性(如“onload”),其中变量的文本数据应该更好地输出到”data-*“属性,然后从事件处理程序中读取。”

    错误消息如上所述。

    我很好奇这个问题是什么以及如何解决。谢谢。

    1 回复  |  直到 2 年前
        1
  •  1
  •   The Blind Hawk    2 年前

    我还没有尝试过,但显然这应该有效:

    th:onclick="|location.href='/__${list.boardCategory}__/__${list.id}__'|"
    

    显然,您必须通过用两个下划线将变量括起来来提前评估该变量。
    这也应该消除使用+操作数的需要