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 に答える