2012-03-07 2 views
1

Рассмотрим класс (ОРМ сущностей):Spring MVC - ServletRequestDataBinder для автоматического создания экземпляров вложенных свойств

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

Я хочу, чтобы он был связан автоматически в контроллер Spring MVC, что-то вроде этого:

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

это хорошо работает для простых свойств, таких как идентификатор, но assoc он бросает исключение NullValueInNestedPathException, поскольку assoc не инстанцирован конструктором. Вопрос в том, как я могу сообщить ServletRequestDataBinder (или BeanWrapper или что-нибудь еще) для автоматического создания свойств свойств, поскольку он пробивается через путь вложенного свойства?

Я мог бы, конечно, сделать еще один класс из MyEntity и поместить в него экземпляр, но тогда я не смогу его сохранить, используя простой вызов Hibernate, поскольку производный класс не будет отображаться.

ответ

0

Хорошо, один из способов сделать это в случае MultiActionController - переопределить newCommandObject; но я хотел бы получить более общее решение.

Смежные вопросы