Spring MVC - ServletRequestDataBinder自动创建嵌套属性的实例

时间:2012-03-07 13:45:07

标签: spring-mvc

考虑一个类(ORM实体):

public class MyEntity {
    Long id;
    MyOtherEntity assoc;
    // ... getters and setters
}

我想让它自动绑定在Spring MVC控制器中,类似于:

public ModelAndView method(HttpServletRequest request, 
    HttpServletResponse response, MyEntity command) {
}

它适用于像id这样的简单属性,但对于assoc,它会抛出异常NullValueInNestedPathException,因为assoc没有被构造函数实例化。问题是,我如何告诉ServletRequestDataBinder(或BeanWrapper或其他任何东西)在通过嵌套属性路径时自动实例化属性?

我当然可以创建另一个派生自MyEntity的类并在其中放置一个实例,但是我将无法使用简单的Hibernate调用来保存它,因为派生类不会被映射。 / p>

1 个答案:

答案 0 :(得分:0)

好的,MultiActionController的一种方法是覆盖newCommandObject;但我想要一个更通用的解决方案。