1

如何从 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
4

1 回答 1

0

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

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

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

于 2013-10-21T15:49:26.730 回答