0

我在 spring mvc 控制器中有一个简单的请求调用

@ResponseBody
@RequestMapping(value = "/url", method = RequestMethod.GET)
public SomeDTO getSth(@RequestParam("paramA") Integer paramA, @RequestParam("paramB") Integer paramB) {
    // ...
}

并且我想要 paramA 或 paramB 否则是正常的 http 响应,因为如果我不提供这两个参数,它当前会发生。

我知道有一个必需的参数可用,但我没有看到连接两者的方法。任何想法?

4

1 回答 1

0

我想不出一个很好的解决方案,但是直截了当的似乎很正常,不是吗?

@ResponseBody
@RequestMapping(value = "/url", method = RequestMethod.GET)
public String getSth(@RequestParam(value = "paramA", required = false) Integer paramA,
        @RequestParam(value = "paramB", required = false) Integer paramB) {
    if (paramA == null ^ paramB == null) {
        return "body";
    } else {
        throw new BadRequestException();
    }
}

@ResponseStatus(value = HttpStatus.NOT_FOUND)
public static class BadRequestException extends RuntimeException {
    private static final long serialVersionUID = 1L;
}
于 2013-01-11T15:42:10.337 回答