2012-05-09 5 views
0

私は過去にJSPタグlibs、freemarker、tiles、JSF-Faceletsを広範囲に使用しました。GWTでUiBinderタグのようにJSP/JSFを構築するには?

1)構成:UiBinder(Javaコードなし)でタグライブラリを作成し、そのタグを別のuiBinderファイルに作成します 2)継承タグライブラリをタグライブラリと同じように使用できますか? :ベースレイアウトのUiBinderファイル(マスターlayoyut)を作成し、子UiBinderファイルの特定のコンテンツ領域をオーバーライドしますか? 3)クライアント側の変数をUiBinder($(map.property))に渡します。

一般に、私はUiBinderと他のテンプレートライブラリとの比較方法はよく分かりません。

答えて

2

UiBinderを使用して1ページの内容を別のページに挿入するには、Header.ui.xmlと同じパッケージmypackageにクラスを作成します。次に、あなたのUiBinderサンプルメッセージホルダーファイルは次のようになります。

<ui:UiBinder 
    xmlns:ui='urn:ui:com.google.gwt.uibinder' 
    xmlns:g='urn:import:com.google.gwt.user.client.ui' 
    xmlns:my='urn:import:mypackage'> 

    <g:HTMLPanel> 
    <my:Header /> 
    <!-- other content --> 
    </g:HTMLPanel> 
</ui:UiBinder> 

をUiBinderサンプルメッセージは、その振る舞いからUIを分離するための非常に便利なツールである最初の場所で。さらに、生産性(それは本当です!)、保守性などを支援し、その他の機能も備えています。 GWTのUiBinderはJSFのアプローチとは大きく異なります。このツールはレンダリングではありません。 JSFとは対照的に、ループや条件は含まれていません。そのマークアップにはifステートメントはなく、非常に限定された式言語のみです。すべてのロジックはJavaクラスです。そしてそうだ。クラス内ではループや条件文を表示するのが理にかなっています。

+0

これはまさに私が探していたものです。 gwtのサンプルプロジェクトであるMailには、上記を示すコードがあります。では、GWTは命名規則に基づいて名前空間を自動的に把握していますか? – pritam

+0

はい、UiBinderには通常のXML文書の完全な権利があります。 – kapand

+0

UiBinderと対応するGeneratorクラスを拡張し、コンポジットコンポーネントの実装で@UiDataのようなカスタムアノテーションを追加し、my:header data = "12343"のようなUiBinderで公開する方法はありますか?データシートやリストボックスなどのためにfaceletのJSFページに「価値」がどのように注入されているか分かっているなら、それは私が求めていることです。 – pritam

0

UiBinderはテンプレートツールではありません。 XMLは、Javaよりも読みやすく、管理しやすいという考え方です。

UiRenderer(GWT 2.5)とSafeHtmlTemplatesはありますが、基本的なものです。彼らはあなたの第3のポイントにのみ答えます。

GWTはあなたの最初の2点に答えません。

+0

タグを作成できない場合、UiBinderはUiBinderを使用して構築された他のコンポーネントをどのようにスケールし、集約/統合しますか?モノリシックの10,000行xmlファイルを1つ作成する必要がありますか? – pritam

+0

いいえ、そのような構造を維持することは難しいため、練習が貧弱です。 1つのUiBinderドキュメントを作成し、それを他のUiBinderドキュメントに含めることができます。ここでは、JSFの 'ui:insert'との類推を見つけることができます。 – kapand

+0

@pritam:UiBinderはウィジェットの実装の詳細です。 (おそらくUiBinderで)ウィジェットを構築し、それらを(おそらくUiBinderで)組み立てることです。 –

関連する問題