2016-12-06 2 views
-1

J'utilise Spring MVC et Spring Security et Hibernate. .? Iam problème ayant avec numéro de téléphone » Enregistrer » à « base de données » où est erreurImpossible de convertir la valeur de propriété de type [java.lang.String] en type requis [java.lang.Integer]

Je reçois l'erreur suivante lorsque je soumets ma forme

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" 

ceci est mon avis:

<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> 

Le modèle:

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

Mon contrôleur:

@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"; 
     } 

Je lis que je suis d'ajouter ce Bean à ma configuration de mise en veille prolongée

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

Mais le message d'erreur est toujours là.

Répondre

0

Le nombre que vous essayez d'envoyer dans le formulaire n'est pas valide Entier - il comprend des parenthèses. Vous devriez changer le type Phone_Number sur votre modèle en String dans ce cas.

0

Si vous souhaitez gérer le numéro de téléphone comme un int, assurez-vous que le paramètre reçu de la vue est un entier.

Vous pouvez essayer cette ligne:

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