se eu tiver um mapeamento de solicitação semelhante ao seguinte:
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public void test(@RequestParam(value = "i", defaultValue = "10") int i) {
}
E então chame esta solicitação com:
http://example.com/test?i=
Recebo a mensagem de erro
Falha ao converter o valor do tipo 'java.lang.String' para o tipo 'int'; a exceção aninhada é java.lang.NumberFormatException: Para string de entrada: "" '
Posso resolver isso impedindo o cliente javascript de enviar parâmetros vazios ou aceitando valores de string e analisando apenas se eles não estiverem em branco.
ATUALIZAÇÃO : as versões posteriores do Spring agora implementam o comportamento originalmente desejado.
Acabei de testar isso no spring 4.3.5 e descobri que o comportamento agora vai de fato transformar o valor nulo no valor padrão sem aumentar a NumberFormatException
, portanto; meu mapeamento original agora funciona bem.
Não tenho certeza de qual versão da primavera essa mudança de comportamento foi feita.
String
tipo fornecido acidentalmente . user902383, isso é correto, embora para um valor inteiro eu preferisse que um valor nulo / vazio usasse o defaultValue.