2014-01-21 39 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当你动态创建更多的文字输入。