用百里香中的参数调用JavaScript函数

时间:2019-09-25 05:08:30

标签: html thymeleaf

我需要使用百里香从html调用javascript函数。在这种情况下,我有一个学生对象,我需要将此学生对象传递给javascript函数(edit())以便在单击按钮时进行处理。

重要的代码段:

<form action="/addStudent" method="post">
Name:<br>
<input type="text" id="name" name="name"><br>
<input type="submit" value="Submit"></form>


<table>
<tr>
    <th>ID</th>
    <th>Name</th>
</tr>
<tr th:each="student : ${students}">
    <td th:text="${student.id}"></td>
    <td th:text="${student.name}"></td>

    <td>
        <button type="button" th:onclick="'edit(\'' + ${student} + '\');'">Edit</button>
    </td>
</tr></table>

<script type="text/javascript">
function edit(student)
{
    console.log("--------------------edit---------------------" + student.name);
}</script>

但是它没有按预期工作。它显示以下错误。有人可以帮助我们展示如何将学生对象从百里香传递到javascript函数吗?

  

发生意外错误(类型=内部服务器错误,状态= 500)。模板解析期间发生错误(模板:“类路径资源[templates / students.html]”)    org.thymeleaf.exceptions.TemplateInputException:模板解析期间发生错误(模板:“类路径资源[templates / students.html]”)

1 个答案:

答案 0 :(得分:0)

出于安全原因,您必须定义参数以用作数据属性(在百里香叶的最新版本中)。通过以下方式进行操作:

th:data-student="${student}" th:onclick="edit(this.getAttribute('data-student'))"