在jsp表单中返回子类对象spring mvc

时间:2013-10-21 15:45:37

标签: java spring jsp spring-mvc

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

1 个答案:

答案 0 :(得分:0)

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

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

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