2016-05-13 8 views
0

私はSpring beanを介して動的な編集ボックスを永続化しようとしています。動的なSpringフォームの編集ボックスをBean経由でコントローラに変換する

これは私のコントローラでPOSTメソッドである:彼らはこと

public class SettingBean 
{ 
    private Integer id; 
    private String name; 
    private String value; 
} 

これは私の "設定" Beanクラスの定義である(注:これは私のBeanクラスの定義を "設定" で

@RequestMapping(value = "/secure/settings", method = RequestMethod.POST) 
@Secured({"ROLE_ADMIN"}) 
public String complete(@ModelAttribute("settingsBean") SettingsBean settings, ModelMap model) 
{ 
    return ControllerUtils.redirect("/secure/settings"); 
} 

異なっています)。

public class SettingsBean 
{ 
private List<SettingBean> settings; 
} 

そしてこれは、関連するHTMLです:SettingsBeanが構築されている場合

<form:form method="POST" action="${action}" class = "form-horizontal" modelAttribute="settingsBean" role="form"> 
    <div class="form-group"> 
    <tbody> 
     <c:forEach var="setting" items="${settingsBean.settings}"> 
     <tr> 
      <td>${setting.name}</td> 
      <td><input name="settings[${setting.id}]" value="${setting.value}" path="value" class="form-control" type="text"/></td> 
     </tr> 
    </c:forEach> 
    </tbody> 
</div> 
</form:form> 

settingsリストがnullです。

+0

変更してみてください '' "$ {setting.value}" class = "フォームコントロール" type = "'を確認してください。[this](http://viralpatel.net/blogs/spring-mvc-multi-row-submit-java-list/) – ypp

答えて

0

春のインデックスは、Cの0を使用するJSTL varStatus属性から始まり構文propertyNameの[インデックス]を使用してインデックス付きプロパティをバインド:forEachのフォームと接続詞でインデックス値を収集するためには、

<form:form method="POST" action="${action}" class = "form-horizontal" modelAttribute="settingsBean" role="form"> 
    <div class="form-group"> 
    <tbody> 
     <c:forEach var="setting" items="${settingsBean.settings}" varStatus="status"> 
     <tr> 
      <td>${setting.name}</td> 
      <td><form:input path="settings[${status.index}]" class="form-control" /></td> 
     </tr> 
    </c:forEach> 
    </tbody> 
</div> 
</form:form> 
にフォームをtag.Change
関連する問題