2012-12-13 24 views
8

Geçerli nesnedeki varsayılan değerle oluştururken bir sorunum var.Varsayılan değer, gönderildikten sonra hala seçili

değerinin doğru alanında ayarlanan ama formu göndermek zaman, varsayılan değer kullanıcı listesinde başka bir değer seçse bile hala orada olduğunu ... İşte

benim denetleyicisi geçerli:

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

} 

Ve işte benim JSP aşağıdaki gibidir: i seçim listesinde "Yönetici" seçim i malı "grubu" içinde "Yönetici HelpDesk'i" alırsınız eğer örneğin

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

benim kullanıcı gönderdikten sonra form ...

Neyi yanlış yapıyorum?

Yardımlarınız için teşekkürler!

+0

Listenin başında boş alan eklemeyi düşündünüz mü? Yoksa bu senin için çirkin bir çözüm olabilir mi? :) – GGrec

+0

Firebug veya krom geliştirici araçlarını kullanarak, tarayıcıdan gönderilen değeri bulabilir misiniz? –

+0

@GGeorge o kadar da çirkin değil, ama neden şu anda – user1901206

cevap

0

"POST" yönteminizi veya "onSubmit" yönteminizi görebilir miyim? Gönderme yönteminizde Kullanıcı nesnesini model özniteliğiniz veya komutunuz olarak belirtmeniz gerekir.

+0

Orijinal soruda düzenlendi. – user1901206

+0

Ancak, Kullanıcı nesnesi neden 'final' olarak bildirildi? – SerotoninChase

+0

İleti yönteminizdeki Kullanıcı için son niteleyiciyi kaldırmayı deneyin. – SerotoninChase