Каждое представление в моем приложении Spring 3 имеет набор атрибутов, на которые они могут положиться.Таким образом, первая строка каждого контроллера выглядит примерно так:
ControllerHelper.addDefaultModel(model, personManager, request);
Там я добавлю
- объект пользователя и полное имя, полученное из базы данных, если пользователь вошел в систему
- набор переменных, которые обычно устанавливаются один раз (например,
imagesHost
) - набор языков, которые посетитель может переключить на
- текущий язык
- некоторая статистика (например, общее количество людей в нашей системе)
Все это позволяет каждому представлению отображать зарегистрированное имя пользователя, легко ссылаться на местоположение изображения, список языков и некоторые общие статистические данные о сайте.
Итак, вопрос в том, является ли объект модели контроллера лучшим местом для хранения всех данных или есть более удобное место, которое упрощает доступ к этой информации для представлений?
Иво-вторых, мне бы очень хотелось, чтобы строка ControllerHelper
выше не была первой строкой в каждом контроллере.На самом деле это не всегда первая строка, иногда я сначала проверяю, нужно ли мне перенаправить в этом контроллере, потому что я не хочу тратить ресурсы, заполняющие модель без причины.Возможно, фильтр, аннотация или какой-нибудь механизм обратного вызова Spring может убедиться, что код ControllerHelper
вызывается после , когда контроллер завершает работу, но верно до представления отображается, пропуская это, если перенаправлениебыл возвращен?