Вопрос

Каким будет эквивалент главных страниц в мире веб-разработки на 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 вы также получаете некоторые другие преимущества, такие как возможность повторного использования компонентов страницы с разными данными.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top