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.
String
tip. user902383, bu doğru, ancak bir tamsayı değeri için bunun yerine null / boş bir değerin defaultValue kullanmasını tercih ederim.