aşağıdakine benzer bir istek eşlemem varsa:
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public void test(@RequestParam(value = "i", defaultValue = "10") int i) {
}
Ve sonra bu talebi şu şekilde arayın:
http://example.com/test?i=
Hata mesajını alıyorum
'Java.lang.String' türünün değeri 'int' türüne dönüştürülemedi; iç içe yerleştirilmiş istisna java.lang.NumberFormatException: Giriş dizesi için: "" '
Bunu, javascript istemcisinin boş parametreler göndermesini durdurarak veya dize değerlerini kabul ederek ve yalnızca boş bulunmazlarsa ayrıştırarak çözebilirim.
GÜNCELLEME : İlkbaharın sonraki sürümleri artık başlangıçta istenen davranışı uyguluyor.
Bunu 4.3.5 baharında test ettim ve davranışın şimdi aslında boş değeri a yükseltmeden varsayılan değere dönüştürebileceğini buldum NumberFormatException. orijinal eşlemem artık iyi çalışıyor.
Bu davranış değişikliğinin hangi bahar versiyonunda yapıldığından emin değilim.
Stringtip. user902383, bu doğru, ancak bir tamsayı değeri için bunun yerine null / boş bir değerin defaultValue kullanmasını tercih ederim.