【问题标题】:Returning a subclass object in jsp form spring mvc以jsp形式返回子类对象spring mvc
【发布时间】:2013-10-21 15:45:37
【问题描述】:

如何从jsp视图将子类对象返回给控制器。该页面接收带有子类元素的正确动物列表。我能够显示子类元素,但是当我尝试将其发送回控制器时,我收到绑定错误。这是我的问题的模拟代码。

   public class Group
    {
    public List<Animal> animals;
    //getters and setters 
    }


    abstract class Animal
    {
    String name;
    //getters and setters 
    }

    class Lion extends animal
    {
    String legs;
    //getters and setters 
    }

我的看法:

<form:hidden path="groups[${groupssList.index}].animals[${animalsList.index}].name"/>

例外:

Could not instantiate property type [Animal] to auto-grow nested property path: java.lang.InstantiationException

【问题讨论】:

  • class lion extends animal - 你应该以大写字母开头类名。这甚至无法使用您现在拥有的代码进行编译。

标签: java spring jsp spring-mvc


【解决方案1】:

我认为您的path 值将导致null 引用,Spring 将尝试使用默认对象填充它。要禁用此默认行为,请添加到(每个)您的 @Controller 类。

@InitBinder
public void initBinder(WebDataBinder binder){
    binder.setAutoGrowNestedPaths(false);
}

你最终会得到一个不同的异常,但它会更清楚。

【讨论】:

  • 现在我得到一个 indexoutofBound 异常。
  • @SandeepRao 是的,我告诉过你你会得到另一个例外。但是这个是可控的。您正在访问列表中不存在的索引。调查您的列表内容和您尝试使用的索引。
猜你喜欢
  • 1970-01-01
  • 2012-09-26
  • 2018-01-11
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
  • 2020-09-27
  • 2016-02-03
相关资源
最近更新 更多