当我使用jsp执行项目时,我尝试使其保持简单。现在我想在Thymeleaf做项目。我想在删除之前显示一个确认对话框。我做的。但是,当我单击确定时,我得到一个错误。我想我无法在onclick方法内正确设置链接。

这是我的html代码:

<tr th:each="student,iterStat : ${studentList}">
    <td th:text="${student.id}"></td>
    <td th:text="${student.roll}"></td>
    <td th:text="${student.firstName}"></td>
    <td th:text="${student.lastName}"></td>
    <td th:text="${student.age}"></td>
    <td>
        <!-- <a th:href="@{/deleteStudent/(id=${student.id})}">Delete</a> -->
        <a href="#" onclick="confirmRemoveQuestion('@{/deleteStudent/(id=${student.id})}')">
            Delete
        </a>
    </td>
    <script>
        function confirmRemoveQuestion(link) {
            if (show_confirm()) {
                window.location = link;
                this.hide();
            } else {
                this.hide();
            }
        }
        function show_confirm() {
            return confirm("Are you sure you want to do this?");
        }
    </script>
</tr>


这是我的控制器:

@RequestMapping(value = "/deleteStudent", method = RequestMethod.GET)
public String deleteStudent(@RequestParam(name="id") int id) {
    studentService.deleteStudent(id);
    return "redirect:/getStudents";
}


注意:没有对话框,我可以轻松删除对象。该代码在注释行中。

最佳答案

最后我已经解决了。我已经取代了生产线

<a href="#" onclick="confirmRemoveQuestion('@{/deleteStudent/(id=${student.id})}')"> Delete</a>




<a href="@{/deleteStudent/(id=${student.id})}" onclick="return confirm('Are you sure you want to delete this item?');">Delete</a>


而且我已经删除了javascript代码。因为不再需要了!

09-27 23:49