5

コントローラーの署名(私もリクエストボディとして試しました):

@RequestMapping(value = "/Lame", method = RequestMethod.POST)
public
@ResponseBody
boolean getLame(@RequestParam String strToMatchA, @RequestParam String strToMatchB) {}

そしてこれは私のjsonとして:

{
"strToMatchA": "EN",
 "strToMatchB": "lon"
}

動作していません、エラーが発生します:

org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'strToMatchA' is not present

この最初のパラメーターをメソッドシグネチャから削除すると、それが機能するようになります(メソッドが正しく呼び出されます)。どうすればよいですか?

注釈を付けるようにメソッドパラメータを変更すると@RequestBody、次のエラーが発生します。

java.io.IOException: Stream closed
4

1 に答える 1

4

jsonは問題ありませんが、コントローラーの署名は問題ありません。jsonに一致するセッターを使用してクラスを作成します。文字列の代わりに引数として使用してください。requestbodyで注釈を付けます。動作するはずです。

于 2012-10-12T16:17:50.887 に答える