| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Вопрос по Spring Web MVC |
| Автор: maz543 22.1.2010, 20:15 |
| Изучаю спринг, пример petclinic. Хочу свой проект сделать по аналогии, простенький сайт. Такой вопрос. У меня есть меню, которое строится на основе данных из базы. Каким образом, анатацией, можно создать это меню, положить во view? Чтобы этого не делать в каждом контроллере или чтобы меню доставалось из базы, а потом выполнялись действия конкретного контроллера. |
| Автор: gelo86 22.1.2010, 20:29 |
| Если используеш Tiles то там есть такая штука ViewPreparer. |
| Автор: maz543 22.1.2010, 20:39 |
| Я использую jstl |
| Автор: gelo86 22.1.2010, 21:20 |
| Ну тогда в голову приходит, что вам придетя описывать свои ViewResolver и View. Тогда вы всегда перед тем как рендерить йсп, сможете в модел записать даные ис БД о меню. |
| Автор: maz543 23.1.2010, 10:49 |
| Мне кажется это странным, что на типичную функциональность нет стандартного решения. Будем искать дальше. |
| Автор: afon 23.1.2010, 13:03 | ||
У меня есть базовый контроллер всех типовых форм - BaseFormController, от которого потом наследуются все остальные, и даже еще несколько базовых, совсем простых. Так вот, в спринговых контроллерах есть методы showForm и handleRequestInternal, через первый метод все контроллеры проходят всегда, когда показывают форму, через второй - всегда, когда получают какой-нибудь реквест, кроме onSubmit. Из этих двух методов можешь вызывать какой-нибудь свой метод (у меня - fillModelMap(HttpServletRequest, Map)) {return Map}- который сам будет набрасывать в этот Map все нужные объекты. А этот Map потом кладется во view уже внутри методов showForm и handleRequestInternal. У меня в каждый view вбрасывается авторизированный пользователь и объект меню. То есть - всегда, при всех типах запросах на любой контроллер, возвращающий произвольный view. Так решил это я, возможно, в спрингах есть более адекватные методы, но я не нашел. |
| Автор: afon 23.1.2010, 19:05 |
| >>Меня удивляет и возмущает то, что этого нет Просто spring используется черт те где >>или я смотрю в книгу, а вижу фигу А вы только знакомитесь со спрингами или как бы уже давно и хорошо знакомы? По собственному опыту - чем дальше с ними работаешь, тем больше они "впириают". Это мега штука, серьезно. Взять те же контроллеры - вот вам метод handleRequest - универсальный. Дальше на его основе можно выдумывать все что угодно. Но это я так... |