当我使用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
代码。因为不再需要了!