2012-12-13 67 views
8

我在創建包含在當前對象中的默認值時出現問題。默認值在提交後仍然存在

值在現場設置正確,但是當我提交表單,默認值是仍然存在,即使用戶選擇列表中的其他值...

這裏是我的控制器:

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

} 

這裏是我的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> 

例如,如果我在選擇列表中選擇「管理」,我會的財產「組」,在得到「服務支持,管理」我用戶提交後形式...

我做錯了什麼?

感謝您的幫助!

+0

你有沒有考慮在列表的開頭添加一個空白字段?或者這對你來說會是一個醜陋的解決方法? :) – GGrec

+0

使用Firebug或Chrome開發者工具,你能找到從瀏覽器發佈的價值嗎? –

+0

@GGeorge這不是那麼難看,但我想明白爲什麼它目前沒有工作 – user1901206

回答

0

我可以看到你的「POST」方法或「onSubmit」方法嗎?在您的發佈方法中,您必須指定User對象作爲您的模型屬性或命令。

+0

在原來的問題編輯。 – user1901206

+0

但是爲什麼User對象聲明爲'final'? – SerotoninChase

+0

嘗試在您的發佈方法中刪除用戶的最終限定符。 – SerotoninChase

相關問題