Spring MVC - Макеты - PullRequest
       6

Spring MVC - Макеты

1 голос
/ 11 марта 2012

Я нахожусь в процессе изучения Spring, пришедшего из работы в среде PHP / Zend. Я пытаюсь понять, как делать все обычные вещи, которые я обычно делаю в проекте, от запросов AJAX до обработки форм и т. Д. Все это кажется довольно простым, но у меня сейчас проблемы с одной конкретной областью. и это макеты

Я смотрел на Velocity, SiteMesh и Tiles, которые кажутся излишними, а также не решают другую проблему (afaik), связанную с макетами, которая заключается в внедрении «виджетов» из-за отсутствия лучшего описания.

Что я хотел бы сделать, так это легко сказать: «Этот контроллер (или метод) должен использовать этот макет». Мне не нужно ничего более сложного, чем это. Я нашел это сообщение в блоге, которое с небольшой поправкой дало бы мне то, что мне нужно, я верю: http://blog.tuxychandru.com/2009/12/simple-layouts-with-jsp-in-spring-mvc.html

На "виджетах". Допустим, у меня есть «layout.jsp», который включает мой верхний заголовок, который, в свою очередь, включает в себя текущего пользователя, вошедшего в систему, динамическую навигацию, CSS / JS-URL, которые должны иметь динамический префикс. Другими словами, компоновка должна иметь возможность либо захватывать необходимые данные, либо вводить их. Насколько я вижу, у меня есть два варианта. Первый вариант - пользовательский taglib. Второй вариант - создать bean-компонент Layout, который затем может быть внедрен с набором других bean-компонентов (как определено в конфигурации), которые, в свою очередь, могут быть внедрены в модель для использования JSP.

У кого-нибудь есть мнение относительно предпочтительного подхода из двух приведенных выше? Taglib выглядит проще, хотя и менее элегантно.

Существуют ли какие-либо механизмы компоновки / шаблонирования, которые интегрируются с Spring и предоставляют возможность проходить через произвольные bean-компоненты, подобные этой?

ОБНОВЛЕНИЕ: Я заметил, что Tiles имеет концепцию ViewPreparer, которая решает проблему, связанную с внедрением объектов, не связанных с контроллером.

Заранее спасибо,

Джеймс.

1 Ответ

1 голос
/ 12 марта 2012

Плитка на самом деле довольно проста, поэтому я бы не отказался от нее как за «перебор».Я использую это довольно часто.Как вы уже обнаружили, с ViewPreparer вы также можете очень близко эмулировать поведение, похожее на компонент.

Еще один способ - использовать JSF для рендеринга.Я написал загрузчик для Spring MVC, используя JSF 2 некоторое время назад.

...