我想实现从列表视图中删除实体。我遇到了这个问题。你能给我解释一下,问题出在哪里吗?我该怎么解决?
控制器方法:
@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:";
}
如果我在处理列表视图(并且我看到了整个列表),我需要指定'Get‘方法吗?如果我需要,我应该把什么代码放在那里。我没有任何想法。
发布于 2012-12-09 07:24:28
问题出在按钮类型属性中。
如果你有超文本标记语言按钮type="submit"
,那么你的服务只能是RequestMethod.GET
。当你切换到RequestMethod.POST
时,你会看到“请求方法'GET‘不受支持”。
解决方案:将按钮标记中的属性更改为type="button"
。
发布于 2012-08-31 04:15:06
通过指定method = RequestMethod.POST
,您实际上表示应该只为POST
和路径/deleteComment/{commentId}
调用deleteComment
方法。如果你想让它也接受GET的请求,你可以移除这个方法,或者也可以这样接受GET:
@RequestMapping(value = "/deleteComment/{commentId}", method = {RequestMethod.POST, RequestMethod.GET})
您可能还希望以这种方式显式指定要绑定到commentId path变量的变量的名称:
public String deleteComment(@PathVariable("commentId") int commentId, BindingResult result, Model model){
https://stackoverflow.com/questions/12204625
复制相似问题