设置值时,使用默认值设置RequestParam始终为null

时间:2015-01-24 10:21:29

标签: java spring rest

我正在使用RequestParam注释创建一个可以处理可选参数(在本例中为性别)的rest方法。但性别价值总是被视为空。 (春季版4.0.0)第二个参数被认为是正确的。

示例:http://localhost:8080/bll-0.1/qry/gender/female/age/40

@RequestMapping(value = {"/age/{age}", "/gender/{gender}/age/{age}"}, method = RequestMethod.GET)
public @ResponseBody String getByAge(@RequestParam(value="gender", defaultValue="unknown") String gender, @PathVariable("age") int age) throws Exception {...}

提前致谢。 的Pankaj

1 个答案:

答案 0 :(得分:0)

就像Juned在评论中所说的那样,也可以使用@PathVariable作为性别。

public @ResponseBody String getByAge(@PathVariable("gender") String gender, @PathVariable("age") int age) throws Exception {...}

如果您需要可选参数,如果您有请求参数则不会出现问题,那么您的网址应该有点像http://localhost:8080/bll-0.1/qry/age/40?gender=female,您可以使用@RequestParam

public @ResponseBody String getByAge(@RequestParam(value="gender", defaultValue="unknown") String gender, @PathVariable("age") int age) throws Exception {...}