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