I apologize in advance if this or a similar question has already been asked, but I could not find a suitable answer.
I have a simple form like this in EditUser.jsp
(mapped to: .../admin/users/edit/{userId}
):
<form action="/admin/users/edit/addRole/${user.userId}" method="POST">
<select name="role">
<c:forEach var="role" items="${roles}">
<option value="${role}">${role}</option>
</c:forEach>
</select>
<button type="submit" value="AddRole">Add Role</button>
</form>
And @RequestMapping
like this:
@RequestMapping(value = "/admin/users/edit/addRole/${userId}", method = RequestMethod.POST)
public String addUserRole(
Model model,
@RequestParam("role") String role,
@PathVariable(value="userId") long userId)
{
...
return "redirect:/admin/users/edit/${userId}";
}
The problem is the result of the request: HTTP Status 404 - /admin/users/edit/addRole/7
- "The requested resource is not available" (7 is some user id). A cannot map the POST
request to the controller action. I already tried with th:action
but it redirects me to the previous page .../admin/users
.
Any help pointers appreciated .