如何将 REST 参数映射到复杂对象?

How to map REST parameters to complex object?

我想创建一个带有 springREST 服务,它需要一组参数。我希望将这些参数自动映射到一个复杂的传输对象中,例如:

@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);
}

所以,我发现问题很少(当然如果不是打错的话):

  1. localhost:8080/myapp&param=true“&”不对,必须用“?”从 URL 中拆分参数,例如 localhost:8080/myapp?param=true.
  2. 我在 @RequestMapping(method = RequestMethod.GET) 中没有看到映射值(但是如果您发现了请求,那么您已经进行了正确的配置)。