Spring MVC - ServletRequestDataBinder для автоматического создания экземпляров вложенных свойств - PullRequest
1 голос
/ 07 марта 2012

Рассмотрим класс (сущность 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, поскольку производный класс не будет отображен.

1 Ответ

0 голосов
/ 07 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...