我想将模型数据列表发送到springMVC。
基本理念是:
@ModelAttribute
获取请求参数。HTML代码: (单一型号)
<tr>
<td>id:</td>
<td><input type="text" id="sportsFieldList[0].id" name="sportsFieldList[0].id" /></td>
</tr>
<tr>
<td>name:</td>
<td><input type="text" id="sportsFieldList[0].name" name="sportsFieldList[0].name" /></td>
</tr>
<tr>
<td>location:</td>
<td><input type="text" id="sportsFieldList[0].location" name="sportsFieldList[0].location" /></td>
</tr>
<tr>
<td>description:</td>
<td><input type="text" id="sportsFieldList[0].description" name="sportsFieldList[0].description" /></td>
</tr>
SportsFieldListWrapper.java:
import java.util.List;
import xxx.SportsField;
public class SportsFieldListWrapper {
private List<SportsField> sportsFieldList;
public List<SportsField> getSportsFieldList() {
return sportsFieldList;
}
public void setSportsFieldList(List<SportsField> sportsFieldList) {
this.sportsFieldList = sportsFieldList;
}
}
控制器方法:
public @ResponseBody Map<Object, Object> batchAdd(@ModelAttribute SportsFieldListWrapper sflWrapper) {
}
SportsField.java:
// Just a simple POJO
public class SportsField {
private Long id;
// more fields
// getter & setter
}
我尝试创建一个可重用的通用版本的包装器,以避免为每种类型创建一个包装器。
ListParamWrapper.java:
import java.util.List;
public class ListParamWrapper<T> {
private List<T> paramList;
public List<T> getParamList() {
return paramList;
}
public void setParamList(List<T> paramList) {
this.paramList = paramList;
}
}
控制器方法:
public @ResponseBody Map<Object, Object> batchAdd(@ModelAttribute ListParamWrapper<SportsField> listWrapper) {
}
HTML代码: (单一型号)
<tr>
<td>id:</td>
<td><input type="text" id="paramList[0].id" name="paramList[0].id" /></td>
</tr>
<tr>
<td>name:</td>
<td><input type="text" id="paramList[0].name" name="paramList[0].name" /></td>
</tr>
<tr>
<td>location:</td>
<td><input type="text" id="paramList[0].location" name="paramList[0].location" /></td>
</tr>
<tr>
<td>description:</td>
<td><input type="text" id="paramList[0].description" name="paramList[0].description" /></td>
</tr>
获取错误
org.springframework.beans.InvalidPropertyException:bean类的无效属性'paramList [0]'[com.sportslight.entity.ListParamWrap per]:属性路径'paramList [0]'中的越界索引;嵌套异常是java.lang.IndexOutOfBoundsException:索引:0,大小:0
我已在Google上搜索过此列表的大小&gt; 256,可能会得到类似的错误,但事实并非如此,测试中列表大小只有2。
答案 0 :(得分:0)
错误消息表示paramList为空,即使您认为其大小为2。
你没有显示实例化Wrapper的代码,所以我不能给出一个提示为什么它是空的。