Эквивалент главных страниц ASP.NET на Java
-
09-06-2019 - |
Вопрос
Каким будет эквивалент главных страниц в мире веб-разработки на Java?Я слышал о Tiles, Tapestry и Velocity, но ничего о них не знаю.Являются ли они такими же простыми в использовании, как мастер-страницы?
Мне нужно что-то столь же простое, как настройка одного шаблона, а последующие страницы будут производными от шаблона и переопределять области контента, аналогично главным страницам.
Любые примеры были бы великолепны!
Решение
Во-первых, эквивалентом ASP.Net на Java будет веб-фреймворк, подобный тем, которые вы упомянули (Tiles, Tapestry и Velocity).
Главные страницы дают возможность определять страницы с точки зрения содержимого, помещенного в главный шаблон.
Главные страницы — это функция ASP.Net (веб-платформы .Net), поэтому вам нужна функция, аналогичная главным страницам в веб-платформе Java.
http://tiles.apache.org/framework/tutorial/basic/pages.html дает несколько базовых примеров использования Tiles и JSP для реализации чего-то подобного с помощью Struts, веб-фреймворка Java.В этом случае функциональность главных страниц представляет собой плагин поверх Struts.
Velocity — это универсальный шаблонизатор, не специализированный для веб-страниц и определенно более сложный, чем вам нужно.(Я видел, как он использовался для генерации кода.)
Tapestry — это скорее полнофункциональный веб-стек, чем Tile, и он, вероятно, подойдет для ваших целей.Его функциональность шаблонов включает в себя создание компонента и размещение в нем всей общей разметки.Пример находится на http://www.infoq.com/articles/tapestry5-intro.
Особенности этого процесса различаются в зависимости от того, какую веб-инфраструктуру Java вы выберете.
Другие советы
Вам также следует проверить Фасеты;Eсть хорошая вводная статья на Девелоперворкс.
Facelets <ui:insert/>
тег сопоставим с ASP.NET <asp:ContentPlaceHolder/>
тег, используемый на главных страницах;он позволяет вам предоставлять содержимое по умолчанию для этой области страницы, но это можно переопределить.
Чтобы заполнить шаблон Facelets на другой странице, вы начинаете с <ui:composition/>
элемент, указывающий на файл шаблона.Это примерно эквивалентно объявлению атрибута MasterPageFile на странице ASP.NET.
Внутри <ui:composition/>
элемент, который вы используете <ui:define/>
элементы для переопределения значений шаблона по умолчанию, аналогично тому, как <asp:Content/>
используется тег.Эти элементы могут содержать контент любого типа — от простых строк до элементов JSF.
Итак, чтобы собрать все это воедино...
В мастер.xhtml:
<!-- HTML header content here -->
<ui:insert name="AreaOne">Default content for AreaOne</ui:insert>
<ui:insert name="AreaTwo">Default content for AreaTwo</ui:insert>
<!-- HTML footer content here -->
В страница.xhtml:
<ui:composition template="/WEB-INF/templates/master.xhtml">
<ui:define name="AreaOne">Here is some new content</ui:define>
<ui:define name="AreaTwo">
<p>Some new content here too</p>
</ui:define>
</ui:composition>
И это будет отображаться как:
<!-- HTML header content here -->
Here is some new content
<p>Some new content here too</p>
<!-- HTML footer content here -->
С Facelets вы также получаете некоторые другие преимущества, такие как возможность повторного использования компонентов страницы с разными данными.
(Отредактировано для предоставления дополнительной информации.)
я использовал сетка сайта в предыдущих проектах, и его довольно легко настроить.По сути, вы создаете декораторы, которые являются эквивалентами главных страниц.Затем вы определяете, какие дочерние страницы используют какие декораторы.Видеть введение в сетку сайта Чтобы получить больше информации.