ASP.NET Master Pages эквивалент в Java - PullRequest
       28

ASP.NET Master Pages эквивалент в Java

6 голосов
/ 25 августа 2008

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

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

Любые примеры были бы великолепны !!

Ответы [ 3 ]

12 голосов
/ 29 августа 2008

Вы также должны проверить 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 -->

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

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

4 голосов
/ 25 августа 2008

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

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

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

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

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

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

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

2 голосов
/ 04 марта 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...