6

Java Web開発の世界で同等のマスターページは何でしょうか?Tiles、Tapestry、Velocityについて聞いたことがありますが、それらについては何も知りません。マスターページと同じくらい使いやすいですか?

マスターページと同様に、1つのテンプレートを設定し、後続のページがテンプレートから派生してコンテンツ領域をオーバーライドするのと同じくらい簡単なものが必要です。

どんな例でも素晴らしいでしょう!

4

3 に答える 3

12

Faceletsもチェックしてください。DeveloperWorks に関する優れた紹介記事があります。

Faceletsタグは、マスター ページで使用される<ui:insert/>ASP.NET タグに相当します。<asp:ContentPlaceHolder/>ページのその領域にデフォルトのコンテンツを提供できますが、これはオーバーライドできます。

Facelets テンプレートを別のページに入力する<ui:composition/>には、テンプレート ファイルを指す要素から始めます。これは、ASP.NET ページで MasterPageFile 属性を宣言することとほぼ同じです。

要素内では、<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 を使用すると、その他の利点も得られます。

(より多くの情報を提供するために編集されました。)

于 2008-08-28T20:07:37.267 に答える
4

まず、JavaのASP.Netに相当するものは、あなたが言及したもの(Tiles、Tapestry、Velocity)などのWebフレームワークになります。

マスターページは、マスターテンプレートに挿入されたコンテンツに関してページを定義する機能を提供します。

マスターページはASP.Net(.Net Webフレームワーク)の機能であるため、JavaWebフレームワークのマスターページに類似した機能を探しています。

http://tiles.apache.org/framework/tutorial/basic/pages.htmlには、Java WebフレームワークであるStrutsと同様のものを実装するために、タイルとJSPを使用したいくつかの基本的な例が示されています。この場合、マスターページ機能はStruts上のプラグインです。

Velocityは一般的なテンプレートエンジンであり、Webページに特化しておらず、必要以上に複雑です。(コード生成に使用されるのを見ました。)

タペストリーはタイルよりもフル機能のWebスタックであり、おそらくあなたの目的に適しています。そのテンプレート機能には、コンポーネントを作成し、その中にすべての一般的なマークアップを配置することが含まれます。例はhttp://www.infoq.com/articles/tapestry5-introにあります。

これの詳細は、選択したJavaWebフレームワークによって異なります。

于 2008-08-25T01:34:37.123 に答える
2

以前のプロジェクトでサイトメッシュを使用しましたが、セットアップは非常に簡単です。基本的に、マスターページに相当するデコレーターを作成します。次に、どの子ページがどのデコレータを使用するかを定義します。詳細については、サイトメッシュの概要を参照してください。

于 2011-03-04T10:07:42.650 に答える