2012-03-07 32 views
1

考慮一類(一個ORM實體)的實例:Spring MVC的 - ServletRequestDataBinder自動創建嵌套屬性

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調用保存它,因爲派生類不會被映射。

回答

0

好的,在MultiActionController的情況下這樣做的一種方法是覆蓋newCommandObject;但我想要一個更通用的解決方案。