如何将 REST 参数映射到复杂对象?
How to map REST parameters to complex object?
我想创建一个带有 spring
的 REST
服务,它需要一组参数。我希望将这些参数自动映射到一个复杂的传输对象中,例如:
@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
.
我错过了什么?
试试 localhost:8080/myapp?param=true
。
可能是另一双眼睛看到了显而易见的情况:)
编辑
从方法签名中删除 @RequestParam
,对我有用。
原来我必须省略复杂对象的 @RequestParam
:
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String content(RestDTO restDTO) {
Sysout(restDTO);
}
所以,我发现问题很少(当然如果不是打错的话):
localhost:8080/myapp¶m=true
“&”不对,必须用“?”从 URL 中拆分参数,例如 localhost:8080/myapp?param=true
.
- 我在
@RequestMapping(method = RequestMethod.GET)
中没有看到映射值(但是如果您发现了请求,那么您已经进行了正确的配置)。
我想创建一个带有 spring
的 REST
服务,它需要一组参数。我希望将这些参数自动映射到一个复杂的传输对象中,例如:
@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
.
我错过了什么?
试试 localhost:8080/myapp?param=true
。
可能是另一双眼睛看到了显而易见的情况:)
编辑
从方法签名中删除 @RequestParam
,对我有用。
原来我必须省略复杂对象的 @RequestParam
:
@RequestMapping(method = RequestMethod.GET)
@ResponseBody
public String content(RestDTO restDTO) {
Sysout(restDTO);
}
所以,我发现问题很少(当然如果不是打错的话):
localhost:8080/myapp¶m=true
“&”不对,必须用“?”从 URL 中拆分参数,例如localhost:8080/myapp?param=true
.- 我在
@RequestMapping(method = RequestMethod.GET)
中没有看到映射值(但是如果您发现了请求,那么您已经进行了正确的配置)。