如何通过弹簧控制器映射接收url参数
这个问题似乎微不足道,但我不能得到它正常工作。 我打电话给我的Spring控制器映射与jQuery的Ajax。 someAttr的值始终为空string,无论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) { }
你有很多使用@RequestParam
和其他可选元素的变体,例如
@RequestParam(required = false, defaultValue = "someValue", value="someAttr") String someAttr
如果你不把required = false
,默认情况下会需要param。
defaultValue = "someValue"
– 当未提供请求参数或具有空值时,用作回退的默认值。
如果请求和方法参数是相同的 – 你不需要value = "someAttr"
- Spring MVC:如何在@ResponseBody中返回图像?
- 通过Spring进行RESTfulauthentication
- servlet中的<mvc:annotation-driven />和<context:annotation-config />有什么区别?
- 有没有可能使空的RequestParam值使用defaultValue?
- REST与Spring和Jackson完全数据绑定
- @GetMapping和@RequestMapping之间的区别(method = RequestMethod.GET)
- 如何接受Spring MVC控制器的GET请求中的Date params?
- 如何将多部分文件转换为文件?
- 在JPA @ Entity里注入Bean