我想从列表视图中删除实体。我遇到了这个问题。你能解释一下我,问题是什么,我怎么能成功呢?
控制器方法:
@RequestMapping(value = "/deleteComment/{commentId}", method = RequestMethod.POST)
public String deleteComment(@PathVariable int commentId, BindingResult result, Model model){
{
Comment deletedComment = commentService.findCommentByID(commentId);
if (deletedComment != null) {
commentService.deleteComment(deletedComment);
}
return "refresh:";
}
如果我正在处理list-view(我看到整个列表),是否需要指定'Get'方法。如果我需要,我应该在那里放置什么代码。我没有任何想法......
答案 0 :(得分:2)
问题出在按钮类型属性中。
如果您有HTML按钮type="submit"
,那么您的服务只能是RequestMethod.GET
。当您更改为RequestMethod.POST
时,您的“请求方法'GET'不受支持”。
解决方案:将按钮标记中的属性更改为type="button"
。
答案 1 :(得分:1)
通过指定method = RequestMethod.POST
,您实际上是说只应为deleteComment
和路径POST
调用/deleteComment/{commentId}
方法。如果您希望它也接受GET请求,您可以删除该方法或以这种方式接受GET:
@RequestMapping(value = "/deleteComment/{commentId}", method = {RequestMethod.POST, RequestMethod.GET})
您可能还想以这种方式显式指定要绑定到commentId路径变量的变量的名称:
public String deleteComment(@PathVariable("commentId") int commentId, BindingResult result, Model model){