якщо у мене є запит на картографування, подібний до наступного:
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public void test(@RequestParam(value = "i", defaultValue = "10") int i) {
}
А потім зателефонуйте цьому запиту за допомогою:
http://example.com/test?i=
Я отримую повідомлення про помилку
Не вдалося перетворити значення типу 'java.lang.String' у тип 'int'; вкладений виняток - java.lang.NumberFormatException: Для введення рядка: "" '
Я можу це вирішити, або зупинивши клієнт javascript від надсилання порожніх параметрів, або прийнявши рядкові значення та лише проаналізувавши, якщо вони не будуть виявлені порожніми.
ОНОВЛЕННЯ : Більш пізні версії весни тепер реалізують спочатку бажану поведінку.
Я щойно перевірив це навесні 4.3.5 і виявив, що поведінка тепер фактично перетворить нульове значення у значення за замовчуванням, не підвищуючи NumberFormatException
, таким чином; моє оригінальне відображення зараз працює чудово.
Я не впевнений, у якій версії весни було здійснено цю поведінкову зміну.
String
типу. user902383, це правильно, хоча для цілого значення я вважаю за краще, щоб значення null / empty використовувало замість цього defaultValue.