假设我的表单字段映射为Integer,Short等,输入无效(非数字)。
我在提交表单时在错误地图中显示以下内容:
Failed to convert property value of type 'java.lang.String' to required type 'java.lang.Short' for property 'property'; nested exception is java.lang.NumberFormatException: For input string: "a"
我需要显示自定义的,用户友好的消息。这对我不起作用,它永远不会来到这里:
@ExceptionHandler(NumberFormatException.class)
public String handleNumberConversion(NumberFormatException nfe)
{
return "error.invalidNumberFormat";
}
BindException也不起作用 - 实际上即使方法签名中的泛型异常也不会被激活。
编辑:第二次尝试:我甚至试过这个,这在我的资源包中也不起作用:
# SpringMVC Error Overrides
typeMismatch.java.lang.NumberFormatException=A NumberFormatException occurred.
typeMismatch.java.lang.Short={0} is an invalid value.
typeMismatch.java.lang.Integer={0} is an invalid value.
,我需要从Binding进程异常中获取一些细节,例如绑定的字段和当前值,因为我的自定义错误消息显示了此信息。
答案 0 :(得分:1)
您的处理程序方法需要不同的签名:
@ExceptionHandler(BindException.class)
public String handleBindException(BindException be) {
// extract data from exception...
return "whatever";
}