Failed to convert property value of type java.lang.String to required type java.lang.Integer for property mobile; nested exception is java.lang.NumberFormatException: For input string: "13333332233"
前一阵捣鼓一个开源项目发现这个问题是前台传值时,后台是下图这样:
public AjaxJson create(@Valid @ModelAttribute("data") User user, BindingResult result,
HttpServletRequest request, HttpServletResponse response) {
return doSave(user, request, response, result);
}
这里的user中有个手机号DTO为Integer类型,前台转换mobile只要超过10个字符就会报上面的异常。
这个问题根本原因还是设计问题,Integer最大值为2147483647,spring遇到前端这样的超大范围会默认转成String类型,所以会报这个异常。
建议手机号这种号码类还是用字符串这种类型设计为好。