私は、次のようなAA要求マッピングしている場合:空のRequestParam値にdefaultValueを使用することはできますか?
http://example.com/test?i=
は私が
はの値を変換に失敗しましたエラーメッセージが表示されます。その後、
@RequestMapping(value = "/test", method = RequestMethod.POST) @ResponseBody public void test(@RequestParam(value = "i", defaultValue = "10") int i) { }
をそして、この要求に呼び出しを'int'を入力するには 'java.lang.String'と入力します。ネストされた例外はjava.lang.NumberFormatExceptionです:入力文字列の場合:「」」
私は空のパラメータを送信してからJavaScriptクライアントを停止することのいずれかによって、または文字列値を受け入れ、彼らだけが見つからない場合は解析することによってこの問題を解決することができます空白にする。
UPDATE:それ以降のバージョンのスプリングでは、元の動作が実装されるようになりました。
これを春4.3.5でテストしたところ、実際には動作がnull値をデフォルト値に変更することが確認されました。これはNumberFormatException
です。私の元のマッピングは正常に動作するようになりました。
この動作変更が行われたバージョンはわかりません。
この例外を発生させるには、パラメータがInteger型である必要がありますか? – laher
春のエキスパートではありませんが、設定しないとデフォルト値が使用されますか?つまり、リクエストがhttp://example.com/testになる場合ですか? http://example.com/test?i=を使用すると、私は存在し、 ""に設定され、デフォルト値は使用されません – user902383
ありがとうございましたamir75、誤って 'String'型を提供しました。 user902383、それは正しいですが、整数値の場合、null /空の値はdefaultValueを代わりに使用することをお勧めします。 –