Шаблонирование на основе JSP с помощью Spring - PullRequest
4 голосов
/ 21 декабря 2008

Я использую Spring MVC с представлениями JSP. Каждая страница JSP имеет схожую структуру - верхние колонтитулы, контент, нижние колонтитулы, возможно, боковую панель и т. Д. При поиске «передового опыта» люди, кажется, «включают» нижние колонтитулы и верхние колонтитулы, но это означает, что каждая страница JSP включает в себя эти операторы «include» давая фиксированный формат. На мой взгляд, лучшее решение будет включать в себя вложенные представления, где базовый шаблон расширяется с информацией, соответствующей рассматриваемой странице. Одним из преимуществ этого подхода является то, что в базовом шаблоне можно использовать значения по умолчанию, не повторяя их в других местах. Другое преимущество заключается в том, что вы можете дополнительно разделить структуру и контент («верхний и нижний колонтитулы» являются структурными и, следовательно, принадлежать базовому шаблону) на страницах, которые содержат много текста (например, справочные страницы - вы можете поместить все это в базы данных, но зачем беспокоиться, тем более, что с помощью Spring вы можете разрешать различные представления через локаль?).

Кажется, что нет никакой поддержки для этого на уровне MVC в Spring, но это может быть реализовано в JSP с использованием пользовательских тегов, и, действительно, есть довольно неуклюжая попытка здесь (которая может объясните, что я хочу лучше, чем этот вопрос, хотя я думаю, вы могли бы сделать его менее навязчивым).

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

Ответы [ 4 ]

6 голосов
/ 23 декабря 2008

Я бы порекомендовал SiteMesh . Хорошо работает с Spring.

3 голосов
/ 21 декабря 2008

Я не могу получить полную картину здесь, но вы также можете взглянуть на Apache плитки

Лично я предпочитаю избегать сложностей с добавлением новых фреймворков, поэтому я просто использую файлы тегов

2 голосов
/ 21 декабря 2008

Если вы не привязаны к Spring MVC, я бы предложил Apache Wicket, поскольку он учитывает именно тот тип поведения, который вы описываете. Он также хорошо интегрируется с Spring для IoC.

Наследование разметки калитки

1 голос
/ 09 декабря 2010

Я бы рекомендовал Apache Tiles

Я сделал это с помощью SiteMesh и Tiles. Но я верю, что Tiles лучше для этой работы, чем SiteMesh. - В MHO цель SiteMesh - больше манипулировать существующими веб-страницами.

...