Плитки и Sitemesh выглядят довольно популярными, но этот материал действительно старый и выглядит ужасно по сравнению с текущими удивительными вещами, например. Ruby (ERB) или PHP (шаблон открытой мощности). В наши дни шаблонные движки допускают удобную настройку шаблонов (вставка переменных, автозапуска в зависимости от контекста, итерация через Iterables, доступ к свойствам бина) и макетирование (например, верхние и нижние колонтитулы и переопределение и добавление к некоторым частям, определенным в родительском) без какой-либо сложной конфигурации и без необходимо изменить текущий стек (например, ваш веб-фреймворк).JSP, Sitemesh and Tiles хардкор - любые альтернативы?
Пример parent.html:
<html>
<head>
<title>
<layout:part name="title">
Default title
</layout:part>
</title>
<layout:part name="head" />
</head>
<body>
<div class="menu" layout:part="menu">
default menu
</div>
<div class="content" layout:part="content" />
<div class="footer">
(c) me
</div>
</body>
</html>
Пример child.html
<layout:extend file="parent.html">
<layout:fill name="title">
Custom title
</layout:fill>
<layout:fill name="contnet">
the content
{$var} from model
</layout:fill>
</layout:extend>
Я ищу лучше Facelets, что не потребует от меня изменить весь стек - Я не собираюсь адаптировать весь проект к JSF или Wicket, чтобы использовать лучшие представления.
Механизм шаблонов не требует каких-либо дополнительных сервлетов или фильтров (без логики на основе URL). Я хочу использовать двигатель программно. Возможным вариантом использования является определение пользовательского ViewResolver весной 3.
Было бы идеально, если макеты не были определены заранее в файле конфигурации. Это не нужно, если вы просто определяете родительский вид в файле шаблона.
Рамки могут быть на вершине JSP, но это не обязательно. Преимуществом является возможность использования taglib, предоставляемых другими фреймами (например, Spring).
Или, может быть, все уже есть в Sitemesh/Tiles, но нуждается в большой конфигурации? Если вы знаете какую-либо конфигурацию примера, которая позволяет достичь всех указанных целей, сообщите мне об этом.
Связанный вопрос: what alternatives exist to Sitemesh to help layout JSP/JSTL page footers/headers in a Spring MVC app? - мой вопрос также относится к шаблонам, и не ограничивается Spring Web MVC.
Почему вы думаете, что плитки 2 в старом стиле? Я просто забыл о ERB, но, похоже, вы можете достичь таких же функций, например, с помощью Tiles 2 и Velocity. Что тебе нужно? – sinuhepop
Просить предложений о каркасе здесь не рекомендуется. Если вы хотите отредактировать все запросы для этого и задайте вопрос, на который можно ответить здесь, не щелкая за пределами сайта, сделайте это и отметьте для повторного открытия. Благодарю. – Will