0

リクエスト パラメータを受け取るエンドポイントがあります。http://localhost/test?parameter=123 誰かがこのエンドポイントを整数ではなく文字列で呼び出すと、文字列を変換できないため、BAD_REQUEST 応答が返されます。

リクエストパラメータの変換例外を無視して空のままにすることはできますか?`

現在、私のコードは次のようになっています。

@RequestMapping(value = "/test")
public void doSomething(@RequestParam(required = false) Integer parameter) {...}
4

1 に答える 1

1

パラメータを文字列として取得し、自分で変換する必要があります。

メソッドシグネチャにある必要があると言うとInteger、これが実際に整数である必要があります。もしそうでなければ、それは確かBAD_REQUESTです。他のカスタム シナリオが必要な場合は、自分で実装する必要があります。

@RequestMapping(value = "/test")
public void doSomething(@RequestParam(required = false) String parameter) {

    Integer parameterValue = null;

    if (parameter != null) {
        try {
           parameterValue = Integer.valueOf(parameter);
        } catch (NumberFormatException ex) {
           // No-op as already null
        }
    }

    // At this point the parameterValue is either null if not specified or specified as non-int, or has the integer value in it
}
于 2013-10-23T10:46:27.347 に答える