2012-12-13 12 views
8

Ho un problema durante la creazione di un valore predefinito contenuto nel mio oggetto corrente.Il valore predefinito in selezionare è ancora presente dopo l'invio

Il valore è impostato correttamente nel campo, ma quando ho inviato il modulo, il valore di default è ancora lì, anche se l'utente ha scelto un altro valore nella lista ...

Ecco il mio controller:

@RequestMapping(method = RequestMethod.GET) 
public String createForm(final ModelMap modelMap){ 

    User user; 

    user = new User(); 

    user.setGroup("HelpDesk"); 
    user.setName("John"); 


    ArrayList<String> groupList = new ArrayList<>(); 

    groupList.add("Admin"); 
    groupList.add("HelpDesk"); 
    groupList.add("GroupManager"); 
    groupList.add("Others"); 


    modelMap.addAttribute("user", user); 
    modelMap.addAttribute("groupList", groupList); 

    return "/user/user-add"; 
} 

@RequestMapping(method = RequestMethod.POST) 
public String createUser(@ModelAttribute("user") final User user, BindingResult result) { 

    userValidator.validate(user, result, groupList); 

    logger.info(user.getGroup()); //Will print "HelpDesk,Admin" for instance 

    return "..."; 

} 

E qui è il mio JSP:

<table> 
    <form:form method="POST" modelAttribute="user"> 

     <tr> 
       <td>Name:</td> 
       <td><form:input path="name"/></td> 
       <td><form:errors path="name" cssClass="error" /></td> 
      </tr> 


      <tr> 
       <td>Group:</td> 
       <td><form:select path="group" items="${groupList}" multiple="single"/></td> 
       <td><form:errors path="group" cssClass="error" /></td> 
      </tr> 


      <tr> 
       <td colspan="3"><input type="submit" /></td> 
      </tr> 

     </form:form> 
    </table> 

Per esempio, se scelgo "Admin" nella lista di selezione, vado a prendere "HelpDesk, Admin" nella proprietà "gruppo" della mia utente dopo aver inviato il modulo ...

Cosa sto facendo di sbagliato?

Grazie per il vostro aiuto!

+0

Hai considerato di aggiungere un campo vuoto all'inizio dell'elenco? O sarebbe una brutta soluzione per te? :) – GGrec

+0

Usando gli strumenti per sviluppatori Firebug o Chrome, puoi trovare il valore che viene pubblicato dal browser? –

+0

@GGeorge non è così brutto, ma mi piacerebbe capire perché attualmente non funziona – user1901206

risposta

0

Posso vedere il metodo "POST" o il metodo "onSubmit"? Nel tuo metodo post devi specificare l'oggetto User come attributo o comando del modello.

+0

Modificato nella domanda originale. – user1901206

+0

Ma perché l'oggetto utente è dichiarato "finale"? – SerotoninChase

+0

Prova a rimuovere il qualificatore finale per Utente nel tuo metodo post. – SerotoninChase

Problemi correlati