現在のオブジェクトにデフォルト値が含まれている場合に問題が発生しました。サブミット後の選択時のデフォルト値
値が正しくフィールドに設定されますが、私は、フォームを送信すると、デフォルト値は、ユーザーがリスト内の別の値を選択した場合でも、まだそこにあるさ...ここ
は私のコントローラである。@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>
私は、選択リストで「管理者」を選択した場合、私は私の財産「グループ」で「ヘルプデスク、管理者」を取得しますユーザーはフォーム...
私は間違っていますか?
ありがとうございました!
リストの先頭に空白のフィールドを追加することを検討しましたか?それともあなたのための醜い回避策ですか? :) – GGrec
FirebugまたはChromeの開発ツールを使用して、ブラウザから投稿された値を見つけることができますか? –
@GGeorgeそれほど醜いわけではありませんが、なぜそれが現在動作していないのかを理解したいのですが、 – user1901206