jika saya memiliki pemetaan permintaan yang mirip dengan berikut ini:
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public void test(@RequestParam(value = "i", defaultValue = "10") int i) {
}
Dan kemudian panggil permintaan ini dengan:
http://example.com/test?i=
Saya mendapatkan pesan kesalahan
Gagal mengonversi nilai tipe 'java.lang.String' ke tipe 'int'; pengecualian bersarang adalah java.lang.NumberFormatException: Untuk input string: "" '
Saya dapat menyelesaikan ini dengan menghentikan klien javascript agar tidak mengirimkan parameter kosong, atau dengan menerima nilai string dan hanya mem-parsing jika tidak ditemukan kosong.
PEMBARUAN : Versi pegas yang lebih baru sekarang menerapkan perilaku yang awalnya diinginkan.
Saya baru saja menguji ini di musim semi 4.3.5 dan telah menemukan bahwa perilaku sekarang sebenarnya akan mengubah nilai nol menjadi nilai default tanpa menaikkan NumberFormatException
, jadi; pemetaan asli saya sekarang berfungsi dengan baik.
Saya tidak yakin versi musim semi yang mana perubahan perilaku ini dibuat.
String
tipe tidak sengaja diberikan . user902383, itu benar, meskipun untuk nilai integer saya lebih suka nilai null / kosong akan menggunakan defaultValue sebagai gantinya.