Spring Web MVC中映射数组及Collection类

原创 2007年09月25日 16:39:00
一直觉得CSDN是国内最大的技术论坛,其中也有不好的高手,但是从学习Hibernate开始,慢慢发现,大的确是大,但是却真得不够精。很多问题都是问一些怎么配置呀,怎么调试呀;要么就是一些钻牛角尖的问题,讨论来讨论去,如果问到某个框架的具体应用,稍稍深入一点儿,帖子就很快沉下去了。CSND就像是中国整个IT行业一样,给人一种浮躁的、不踏实的感觉。其实我也一样,否则我就不来这里问问题了。

在开发过程中,遇到需要在页面中映射一个对象,而这个对象中有一个List的属性,于是来CSND问,结果不要说答案,回复的都少得可怜。

于是不得不自己找搜索,中文的,没有发现答案,后来在Spring的官方网站发现答案,特此发文以做纪念。

要映射的对象:
class Question{
private String questionString;
private int questionId;
private  List<Option> options = new ArrayList<Option>();
}

class Option{
private int optionId;
private String optionString;
}


jsp页面代码:
<form:form commandName="surveyQuestion">
  
<form:hidden path="questionId"/>
  Question: 
<form:input path="questionTitle"/>
  
<c:forEach items="${surveyQuestion.options}" var="option" varStatus="counter">
    
<spring:bind path="surveyQuestion.options[${counter.index}].optionString">
 Option
<input type="text" name="<%= status.getExpression() %>" value="<%= status.getValue() %>"<br>
    
</spring:bind>
  
</c:forEach>
</form:form>

大致上找到的答案都是这样说,这样的写法也的确可以保证页面正确显示form及数据,但是当点击提交按钮时却出现

org.springframework.beans.InvalidPropertyException: Invalid property 'options[0]' of bean class [Question]: Index of out of bounds in property path 'options[0]'; nested exception is java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

没有办法只好再次去查找,终于找到,有人在论坛(非CSDN论坛)说道,需要在Question的默认的constructor中加入以下语句:

options = ListUtils.lazyList(new ArrayList<Option>(),FactoryUtils.instantiateFactory(Option.class));

应该是Spring在初始化的时候存在一些问题。没有时间看源代码。再次提交,成功了!

后来发现,还是存在一点儿问题,就是当对一个已存在的Question添加Option时仍会出现同样的问题,解决方案请看。
Spring Web MVC中映射数组及Collection类(二)

版权所有: idilent 网站转载请注明作者并链接到http://blog.csdn.net/idilent,
其他转载方式请与作者联系(idilent@yahoo.com.cn)。 

spring MVC 前台传数组类型,后台用list类型接收也是可以的

spring MVC后台处理数组对象。 list类型的参数,接收前台的数组值,实验了一下,结果还真可以。 不用绑定到对象里面。 当然我这个是传递了个包含的是string的数组到后台,然后,后台用li...
  • qq_27093465
  • qq_27093465
  • 2016年08月02日 14:57
  • 19827

SpringMVC传递数组请求问题

在使用SpringMVC时,我们想传递数组引用类型,SpringMVC对数组传递有些限制: 经过测试:SpringMVC支持一维数组的参数传递,不支持多维数组的参数传递,如果想传递多维数组,那么我们...
  • fengshizty
  • fengshizty
  • 2014年12月24日 13:00
  • 3633

Spring中使用Map、Set、List、数组、属性集合的注入方法配置文件

(1)下边的一个java类包含了所有Map、Set、List、数组、属性集合等这些容器,主要用于演示Spring的注入配置; package com.lc.collection; import ja...
  • u010870518
  • u010870518
  • 2014年10月21日 19:37
  • 48619

Spring Web MVC中映射数组及Collection类(二)

Spring Web MVC中映射数组及Collection类 在上文中我提到了在command对象的构造器中添加:options = ListUtils.lazyList(new ArrayList...
  • idilent
  • idilent
  • 2007年10月26日 15:44
  • 3672

springMVC中的实体映射以及两表关联时的映射

例1:(多对一) @Column(name = "VISIT_ID")   (这是本表的一个字段) private Long visitId; @ManyToOne(fetch = FetchTy...
  • qinyuanyuan123
  • qinyuanyuan123
  • 2015年04月27日 10:09
  • 2815

SpringMVC数据绑定全面示例(复杂对象,数组等)

已经使用SpringMVC开发了几个项目,平时也有不少朋友问我数据怎么传输,怎么绑定之类的话题,今天做一个总结。在此之前,大家可以看一下我之前的一篇关于Spring restful的文章http://...
  • z69183787
  • z69183787
  • 2014年12月01日 21:41
  • 73619

Spring MVC 入参支持数组

1、入参实体 @XmlRootElement(name = "appPushMsgBean") public class AppPushMsgBean { private Long[] di...
  • Dracotianlong
  • Dracotianlong
  • 2015年11月22日 19:24
  • 862

springmvc接收前台(可以是ajax)传来的数组list,map,set等集合,复杂对象集合等图文详解

前言:         相信很人都被springmvc接收数组问题折磨过,查过几个解决方案,都不能很好的解决。那些方法一般存在一个问题:把接收到的数据结构转换成你想要的结构时,不好处理。为什么说...
  • wabiaozia
  • wabiaozia
  • 2016年03月04日 20:02
  • 61700

Spring Web MVC中映射数组及Collection类

一直觉得CSDN是国内最大的技术论坛,其中也有不好的高手,但是从学习Hibernate开始,慢慢发现,大的确是大,但是却真得不够精。很多问题都是问一些怎么配置呀,怎么调试呀;要么就是一些钻牛角尖的问题...
  • idilent
  • idilent
  • 2007年09月25日 16:39
  • 5351

数组映射

数组映射
  • robert00100
  • robert00100
  • 2017年01月23日 09:03
  • 74
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring Web MVC中映射数组及Collection类
举报原因:
原因补充:

(最多只允许输入30个字)