我想创建REST
服务spring
,其中包含一堆参数。我希望这些参数自动映射到复杂的传输对象,例如:
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String content(@RequestParam RestDTO restDTO) {
Sysout(restDTO); //always null
}
public class RestDTO {
private boolean param;
//getter+setter
}
但是:当我执行localhost:8080/myapp?param=true
之类的查询时,restDTO参数仍为null
。
我错过了什么?
答案 0 :(得分:1)
尝试使用localhost:8080/myapp?param=true
。
可能是另一双眼睛看到明显的情况:)
修改强>
从方法签名中删除@RequestParam
,对我有用。
答案 1 :(得分:0)
原来我必须省略复杂对象的@RequestParam
:
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String content(RestDTO restDTO) {
Sysout(restDTO);
}
答案 2 :(得分:0)
所以,我发现很少有问题(如果它当然不是错误的话):
localhost:8080/myapp¶m=true
"&"不正确,你必须使用"?"从localhost:8080/myapp?param=true
。@RequestMapping(method = RequestMethod.GET)
中看不到映射值(但如果您发现请求已经进行了正确的配置)。