1. ホーム
  2. spring-mvc

[解決済み] Spring Controller のマッピングで url のパラメータを受け取るには?

2022-08-13 01:41:31

質問

この問題は些細なことのように思えますが、うまく動作させることができません。 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".
}

どのように解決するのですか?

あなたは @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) {
}