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