2016-12-06 3 views
-1

Я использую Spring MVC и Spring Security и спящий режим. .? 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 
    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { 
     return new PropertySourcesPlaceholderConfigurer(); 
    } 

но сообщение об ошибке все еще там.

ответ

0

Номер, который вы пытаетесь отправить в форме, недопустим. Целое число - оно состоит из скобок. В этом случае вы должны изменить тип Phone_Number на модели на String.

0

Если вы хотите обрабатывать номер телефона в виде int, убедитесь, что парам, полученный из представления, является Integer.

Вы можете попробовать линию это:

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