// my form
public class myForm {
private double[] myField;
public double[] getMyField(){
return myField;
}
public void setMyField(double[] myField){
this.myField = myField;
}
}
// my jsp
...
...
<c:set var="i" value="0"/>
<c:forEach items="${myList}" var="data">
<form:input path="myField[${$i}]"/>
<c:set var="i">${i + 1}</c:set>
</c:forEach>
...
...
在spring渲染后,jsp生成此代码;
<input type="text" value="0.0" name="myField0" id="myField0"/>
<input type="text" value="0.0" name="myField1" id="myField1"/>
<input type="text" value="0.0" name="myField2" id="myField2"/>
...
...
Spring无法在控制器上绑定我的表单,因为表单名称无效(myField0,myField1 ..)。如果我用firebug更改名称(如myField [0],myField [1]等)initBinder工作,我在控制器上捕获我的表单数据。我该如何解决这个问题?
感谢。
答案 0 :(得分:1)
在表单中使用Collection而不是数组:
public class myForm {
private Collection<Double> myField;
public Collection<Double> getMyField(){
return myField;
}
public void setMyField(Collection<Double> myField){
this.myField = myField;
}
}