2016-12-06 61 views
-1

我正在使用Spring MVC和Spring Security以及hibernate。 ?IAM有问题,保存“电话号码”为‘数据库’,其中是错误未能将[java.lang.String]类型的属性值转换为所需的类型[java.lang.Integer]

我得到以下错误,当我提交表单

Failed to convert property value of type [java.lang.String] to required type [java.lang.Integer] for property Phone_Number; nested exception is java.lang.NumberFormatException: For input string: "(020)828-5852" 

这是我的看法:

<div class="control-group "> 
<label class="control-label" for="phone" >Phone Number</label> 
    <div class="controls"> 
    <form:input id="phone" path="Phone_Number" type="text" 
    class="form-control span4"/> 
    <div class="has-error"> 
    <form:errors path="Phone_Number" class="help-inline" /> 
    </div> 
    </div> 
    </div> 

模型:

@NotNull 
    @Column(name="PHONE_NUMBER", nullable=false) 
    private Integer Phone_Number; 

我的控制器:

@RequestMapping(value = { "/newuser" }, method = RequestMethod.GET) 
    public String newUser(ModelMap model) { 
     UsersInfo usersInfo = new UsersInfo(); 
     model.addAttribute("usersInfo", usersInfo); 
     model.addAttribute("edit", false); 
     model.addAttribute("loggedinuser", getPrincipal()); 
     return "adduser"; 
    } 

    @RequestMapping(value = { "/newuser" }, method = RequestMethod.POST) 
    public String saveUser(@Valid UsersInfo usersInfo, BindingResult result, ModelMap model) { 


     if (result.hasErrors()) { 
      return "adduser"; 
     } 


     if (!userInfoService.isUserUserNameUnique(usersInfo.getIdUsers(), usersInfo.getUserName())) { 
      FieldError UsernameError = new FieldError("usersInfo", "UserName", messageSource 
        .getMessage("non.unique.UserName", new String[] { usersInfo.getUserName() }, Locale.getDefault())); 
      result.addError(UsernameError); 
      return "adduser"; 
     } 

我读我对这个bean添加到我的Hibernate配置

@Bean 
    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { 
     return new PropertySourcesPlaceholderConfigurer(); 
    } 

但错误信息仍然存在。

回答

0

您尝试在窗体中发送的号码无效整数 - 它包含括号。在这种情况下,您应该将模型上的Phone_Number类型更改为String。

0

如果要将电话号码作为int处理,请确保从视图接收的参数是整数。

你可以试试这个行:

<form:input id="phone" path="Phone_Number" type="number" class="form-control span4"/> 
相关问题