Может ли контроллер использовать тот же экземпляр команды от контроллера, который он расширяет? - PullRequest
0 голосов
/ 07 ноября 2011

У меня есть несколько контроллеров SimpleFormController. Один контроллер содержит объект команды, используемый для фильтрации результатов в других контроллерах. Кажется, мне не хватает чего-то простого, но я не могу найти способ использовать тот же экземпляр объекта команды в других контроллерах.

Моя настройка такова, что этот основной контроллер, назовем его RootController, расширяет SimpleFormController, а остальные контроллеры расширяют RootController. Идея заключалась в том, что объект команды хранится в одном месте - RootController и контроллеры, расширяющие его, повторно используют один и тот же объект. Однако, похоже, что это не работает, другие контроллеры, похоже, имеют свою собственную копию объекта команды.

1 Ответ

1 голос
/ 07 ноября 2011

Объекты поддержки форм - это обычные Pojos, так что вы можете наследовать их друг от друга.

public class BaseCommand {
  ...
}

public class MoreCommand extends BaseComman {
  ...
}

Можете ли вы просто забыть "обновить" commandClass в ваших подклассах контроллера.

В любом случае: обратите внимание, что SimpleFormController устарела в Spring 3.0. Вместо этого предпочтительным является стиль аннотации.


Обновление: один INSTANCE командного объекта может обрабатываться только одним INSTANCE контроллера. Таким образом, вы можете создать подкласс контроллера (не пропустите super), но вы не можете иметь два экземпляра контроллера и надеяться, что оба будут вызваны.

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