Java Web開発の世界で同等のマスターページは何でしょうか?Tiles、Tapestry、Velocityについて聞いたことがありますが、それらについては何も知りません。マスターページと同じくらい使いやすいですか?
マスターページと同様に、1つのテンプレートを設定し、後続のページがテンプレートから派生してコンテンツ領域をオーバーライドするのと同じくらい簡単なものが必要です。
どんな例でも素晴らしいでしょう!
Java Web開発の世界で同等のマスターページは何でしょうか?Tiles、Tapestry、Velocityについて聞いたことがありますが、それらについては何も知りません。マスターページと同じくらい使いやすいですか?
マスターページと同様に、1つのテンプレートを設定し、後続のページがテンプレートから派生してコンテンツ領域をオーバーライドするのと同じくらい簡単なものが必要です。
どんな例でも素晴らしいでしょう!
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 を使用すると、その他の利点も得られます。
(より多くの情報を提供するために編集されました。)
まず、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フレームワークによって異なります。