Вызов функции javascript с параметрами из тимелиста - PullRequest
0 голосов
/ 25 сентября 2019

Мне нужно вызвать функцию JavaScript из HTML, используя тимилиф.В этом конкретном случае у меня есть объект ученика, и мне нужно передать этот объект ученика в функцию 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 / student.html]") org.thymeleaf.exceptions.TemplateInputException: при синтаксическом анализе произошла ошибка (template: "ресурс пути к классу [templates / student.html]")

1 Ответ

0 голосов
/ 25 сентября 2019

По соображениям безопасности вы должны определить параметр, который будет использоваться в качестве атрибута данных (в новейших версиях thymeleaf).Сделайте это следующим образом:

th:data-student="${student}" th:onclick="edit(this.getAttribute('data-student'))"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...