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

リストビューを扱っている場合(そしてリスト全体が表示されている場合)、「Get」メソッドを指定する必要がありますか?必要な場合は、そこにどのコードを配置すればよいですか。私にはアイデアがありません...

4

2 に答える 2

2

問題はボタンの type 属性にあります。

HTML ボタンがある場合type="submit" 、サービスは のみになりRequestMethod.GETます。その後に変更するとRequestMethod.POST、「リクエストメソッド「GET」はサポートされていません」と表示されます。

解決策: ボタン タグの属性を に変更しますtype="button"

于 2012-12-08T23:24:28.137 に答える
1

指定することによりmethod = RequestMethod.POST、基本的に、メソッドはパスに対してdeleteCommentのみ呼び出されるべきであると言っています。GETのリクエストも受け入れたい場合は、メソッドを削除するか、次の方法でもGETを受け入れることができます。POST/deleteComment/{commentId}

@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 に答える