0

我想从列表视图中删除实体。我遇到了这个问题。你能解释一下,问题是什么,我该如何克服它?

控制器方法:

@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:";
}

如果我正在处理列表视图(并且我看到整个列表),我是否需要指定“获取”方法。如果我需要,我应该在那里放置什么代码。我没有任何想法...

4

2 回答 2

2

问题出在按钮类型属性中。

如果您有 HTML 按钮type="submit" ,那么您的服务只能是RequestMethod.GET. 当您更改为RequestMethod.POSTthen 您有“不支持请求方法'GET'”。

解决方案:将按钮标签中的属性更改为type="button".

于 2012-12-08T23:24:28.137 回答
1

通过指定method = RequestMethod.POST,您实际上是在说该deleteComment方法应该只为POST和为 path调用/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){
于 2012-08-30T20:15:05.717 回答