Si j'ai un mappage de demande similaire à ce qui suit :
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public void test(@RequestParam(value = "i", defaultValue = "10") int i) {
}
Et ensuite, appelez cette requête avec :
http://example.com/test?i=
Je reçois le message d'erreur
Impossible de convertir une valeur de type 'java.lang.String' en type 'int' ; l'exception imbriquée est java.lang.NumberFormatException : Pour la chaîne d'entrée : ""'
Je peux résoudre ce problème soit en empêchant le client javascript d'envoyer des paramètres vides, soit en acceptant des valeurs de type chaîne et en ne les analysant que si elles ne sont pas vides.
UPDATE : Les versions ultérieures de spring implémentent maintenant le comportement souhaité à l'origine.
Je viens de tester cela dans spring 4.3.5 et j'ai constaté que le comportement transforme la valeur nulle en valeur par défaut sans générer de message d'erreur. NumberFormatException
Ainsi, ma cartographie d'origine fonctionne désormais parfaitement.
Je ne suis pas sûr de la version de Spring dans laquelle ce changement de comportement a été effectué.