SpringコントローラーマッピングでURLパラメータを受け取るにはどうすればいいですか?質問する

SpringコントローラーマッピングでURLパラメータを受け取るにはどうすればいいですか?質問する

この問題は些細なことのように思えますが、正しく動作させることができません。jquery ajax を使用して Spring コントローラー マッピングを呼び出しています。someAttr の値は、URL の値に関係なく常に空の文字列です。原因の特定を手伝ってください。

-URLが呼び出されました

http://localhost:8080/sitename/controllerLevelMapping/1?someAttr=6

-コントローラーマッピング

@RequestMapping(value={"/{someID}"}, method=RequestMethod.GET)
public @ResponseBody int getAttr(@PathVariable(value="someID") final String id, 
        @ModelAttribute(value="someAttr") String someAttr) {
    //I hit some code here but the value for the ModelAttribute 'someAttr' is empty string.  The value for id is correctly set to "1".
}

ベストアンサー1

@RequestParamの代わりにを使用する必要があります@ModelAttribute。例:

@RequestMapping("/{someID}")
public @ResponseBody int getAttr(@PathVariable(value="someID") String id, 
                                 @RequestParam String someAttr) {
}

完全に省略することもでき@RequestParam、Spring はそれを省略したものとみなします。

@RequestMapping("/{someID}")
public @ResponseBody int getAttr(@PathVariable(value="someID") String id, 
                                 String someAttr) {
}

おすすめ記事