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 Web MVC中映射数组及Collection类(二)

Spring Web MVC中映射数组及Collection类 在上文中我提到了在command对象的构造器中添加:options = ListUtils.lazyList(new ArrayList...

基于Spring注解的WEB MVC开发,URL映射

使用过低版本 Spring MVC 的读者都知道:当创建一个 Controller 时,我们需要直接或间接地实现 org.springframework.web.servlet.mvc.Control...

[error handle][java web]Spring MVC在类上使用@RequestMapping后对静态资源的访问问题

REASON我写的LoginController中对类和方法各有一级映射, 如以下访问时路径为http://localhost:8080/lsqz/login/individualLogin.do ...

如何用Java类配置Spring MVC(不通过web.xml和XML方式)

建立普通MAVEN项目配置POM<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001...

自定义WEB MVC框架 二 简单扫描和映射绑定

主控制器-第二版  上一篇简单的定下一个结构,这次要把它完善起来,至少能跑通。   首先假定所有的Controller类(请求处理器,如果是很古老的写法,那么应该是每一个Servlet)都在一个指定...

Spring3.1.0实现原理分析(十三).MVC请求映射信息RequestMappingInfo详解

大家好,原本是打算先分析spring mvc的处理器映射接口的(HandlerMapping),但是发现其中的请求映射信息对象(RequestMappingInfo)特别重要,所以就决定专门写篇博客介...

Spring-mvc-Handler的返回值用法以及URL映射

1)返回的是ModelAndView对象? 主要运用于:及传递页面也传递数据 ModelAndView代表的是响应的视图,还有一个向该视图传递的数据。比如: @RequestMapping(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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