2014-01-21 40 views
1

我創建一個模型,其中結構如下:發送值從追加的形式去春來控制器

public class A { 

private Long id; 

private Type type; 

private Set<String> names; 

private Set<Long> ids; 

private Set<String> subnames; 

private Set<Long> subids; 
........... 

} 

我想創建模型,具有多個字段,因爲我喜歡儘可能多的。 所以我創建瞭如下形式動態地添加新行。

Creation Form: One of the fields--> 
<form> 
<div id="addNewname" class="form-group"> 
           <label>name</label> 
           <div class="col-lg-4"> 
            <input type="text" name="name_1" id="name" readonly> 
           </div> 
           <button id="btnAddname" type="button" 
           type="hidden" 
            value="btnAddName" name="btnAddName">Add 
            New</button> 
          </div></form> 

與腳本添加新如下:

詮釋計數= 1;

$(document).on("click", "#btnAddNew", function(){ 
      count++; 
    $('#addNewNew').after(
      '<div>' + 
      '<label> New Name</label>'+ 
      '<div >' + 
        '<select name="name_'+ count +'">'+ 
         '<option value="0">None</option>' + 
         '<c:forEach items="${names}" var="name">' + 
          '<option value="${name.id}">${name.name}</option> '+ 
         '</c:forEach>'+ 
        '</select>'+ 
       '</div>'+ 
      '</div>'); 
     }); 

我能夠將值發送到被定義表單值名稱=「NAME_1」的控制器,但我不能從追加的形式創造的價值做同樣的 - 腳本。

任何想法或建議,制定出這一點,我已經嘗試了許多方法,但...

回答

0

您可以使用LazyList添加你想要的名稱。

在你的命令類,而不是使用集來定義你們的名字,試試這個,

import org.apache.commons.collections.FactoryUtils; 
import org.apache.commons.collections.list.LazyList; 

... 私人列表名稱= LazyList.decorate(新的ArrayList(), FactoryUtils.instantiateFactory( String.class)); ...

在JSP頁面中,所需的所有使用arrayIndex訪問或綁定值。即 <形式:輸入路徑= 「名稱[0]」 cssErrorClass = 「errorInput」 MAXLENGTH = 「30」/ >

在JavaScript,做同樣的,使用arrayIndex當你動態創建更多的文字輸入。