Эквивалент главных страниц ASP.NET в Java

Что было бы эквивалентом мастер-страниц в мире веб-разработки на Java? Я слышал о плитках, гобеленах и скорости, но ничего о них не знаю. Они так же просты в использовании, как мастер-страницы?

Мне нужно что-то столь же простое, как настроить один шаблон, и последующие страницы будут производными от шаблона и переопределить области содержимого, как это делают главные страницы.

Любые примеры были бы замечательными !!

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
6
0
10 039
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Во-первых, эквивалентом ASP.Net на Java будет веб-фреймворк, например, упомянутые вами (Tiles, Tapestry и Velocity).

Главные страницы дают возможность определять страницы с точки зрения содержимого, размещенного в главном шаблоне.

Главные страницы являются функцией ASP.Net (веб-фреймворк .Net), поэтому вам нужна функция, аналогичная мастер-страницам в веб-фреймворке Java.

http://tiles.apache.org/framework/tutorial/basic/pages.html дает несколько базовых примеров использования плиток и JSP для реализации чего-то подобного со Struts, веб-фреймворком Java. В этом случае функциональность мастер-страниц - это надстройка над Struts.

Velocity - это общий шаблонизатор, не специализированный для веб-страниц и определенно более сложный, чем вам нужно. (Я видел, как его использовали для генерации кода.)

Tapestry - это больше полнофункциональный веб-стек, чем Tile, и, вероятно, подходит для ваших целей. Его функции создания шаблонов включают создание компонента и размещение в нем всей общей разметки. Пример находится в http://www.infoq.com/articles/tapestry5-intro.

Специфика этого зависит от того, какой веб-фреймворк Java вы выберете.

Вы также должны проверить Facelets; на DeveloperWorks есть хорошая вводная статья.

Тег Facelets <ui:insert/> сопоставим с тегом ASP.NET <asp:ContentPlaceHolder/>, используемым на главных страницах; он позволяет предоставить содержимое по умолчанию для этой области страницы, но это можно изменить.

Чтобы заполнить шаблон Facelets на другой странице, вы начинаете с элемента <ui:composition/>, который указывает на файл шаблона. Это примерно эквивалентно объявлению атрибута MasterPageFile на странице ASP.NET.

Внутри элемента <ui:composition/> вы используете элементы <ui:define/> для переопределения значений шаблона по умолчанию, аналогично тому, как используется тег <asp:Content/>. Эти элементы могут содержать любой вид контента - от простых строк до элементов JSF.

Итак, чтобы собрать все воедино ...

В master.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 -->

В page.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, такие как возможность повторно использовать компоненты страницы с другими данными.

(Отредактировано для получения дополнительной информации.)

Я использовал sitemesh в предыдущих проектах, и его довольно легко настроить. По сути, вы создаете декораторы, которые являются эквивалентами мастер-страниц. Затем вы определяете, какие дочерние страницы какие декораторы использовать. См. введение в sitemesh для получения дополнительной информации.

Другие вопросы по теме