ブートストラップモーダルを呼び出して、データテーブルの各行に削除アクションを実装しようとしています。次に、ユーザー名のパラメーターを使用してコントローラーに削除要求を送信します。
$(document).ready(function () {
$('#usersTable').DataTable({
"sAjaxSource": "users/list",
"sAjaxDataProp": "",
"aoColumns": [
{"mData": "username"},
{"mData": "firstName"},
{"mData": "lastName"},
{"mData": "status"},
{"mData": "role.roleName"},
{
mRender: function (data, type, row) {
var linkDel = "<a href=\"#\" onclick=\"fillDeleteFrm(\'username\')\">Delete</a>";
linkDel = linkDel.replace("id", row.id);
linkDel = linkDel.replace("name", row.name);
return linkDel;
}
}
]
})
});
function fillDeleteFrm(username) {
$('#delete-username').val(username);
$('#userDeleteModal').modal('toggle');
return false;
}
スプリング コントローラーを呼び出す thymeleaf フォーム:
<div id="userDeleteModal">
<form id="systemUserForm" th:action="@{/userdelete}" th:method="delete">
<input type="hidden" id="delete-username" name="username" th:value="*{username}">
<button type="submit" class="btn btn-primary">Delete</button>
</div>
</form>
対応するスプリング コントローラー:
@ResponseBody
@RequestMapping(value="/userdelete", method = RequestMethod.DELETE)
public ModelAndView deleteEmployee(@RequestParam String username) {
User user = userService.findUserByUserName(username);
userService.deleteUser(user);
return new ModelAndView("users");
}
削除リクエスト メソッドを呼び出しても、マッピングはこのコントローラーにルーティングされず、アラートが発生します
HTTP Status 405 - Request method 'GET' not supported
私は何を間違っていたでしょうか?前もって感謝します。