panelDashboardBehaviorタグは、アプリケーション・コードによってサーバーのコンポーネント・ツリーが変更される前に、コマンド・コンポーネント(たとえば、ボタン)でpanelDashboardに視覚的な変更を適用するための宣言的方法です。この動作では、コンポーネント・ツリーは変更されません。かわりに、panelDashboardの視覚的な外観が変更され、panelDashboard全体を再描画せずに最適化された変更を実行できます。このタグは、リッチ・クライアントのみサポートしているため、サーバーでレンダリングされたコンポーネントでは無視されます。
これは、panelDashboardの近くで使用するcommandLinkであり、panelDashboardに挿入できるコンポーネントのリストを表示します。リンクがクリックされると、panelDashboardは、指定された索引付きの位置で実際の領域を空ける動作を開始します。このリンクには、コンポーネント・ツリーに適切な変更を実行(たとえば、ダッシュボードのpanelBoxの子でrenderedをtrueに設定)し、ダッシュボード・コンポーネントでprepareOptimizedEncodingOfInsertedChild()を起動するマネージドBeanのactionListenerが含まれます。このメソッドにより、ダッシュボードは挿入されたpanelBoxのコンテンツのみを送信します。これを実行するために動作タグを使用する必要はありません。この動作タグを使用する利点は、サーバーがアクション・イベントの処理を開始し、マネージドBeanが変更を実行して新規のpanelBoxコンテンツを送信する前に、コンテンツのための空間を空ける動作が迅速に開始されることです。動作タグを使用しない場合は、サーバーから新規コンテンツが取得されるまでダッシュボード内に空間が空かないため、サーバー・コードの処理中にユーザーが遅延を感じることがあります。
<source> <af:commandLink text="Add #{sideBarItem.title}" partialSubmit="true" actionListener="#{someBean.addChildAndKickOfOptimizedEncoding}" rendered="#{sideBarItem.notShown}"> <af:panelDashboardBehavior for="someDashboard" type="insert" index="#{sideBarItem.indexIfRendered}"/> </af:commandLink>
</source>
名前 | 型 | ELのサポート | 説明 |
---|---|---|---|
for | String | あり | 変更されるpanelDashboardコンポーネントのID。1つのコロンで始まるIDは、(コロンを除いた後)絶対値として扱われます。その他のIDは、panelDashboardBehaviorを含むコンポーネントに対して相対的に解決されます。 |
type | String | あり | panelDashboardに適用される視覚的変更のタイプ。指定できる値は、insert(デフォルト)であり、次の処理が行われます。ダッシュボードの本体が末尾までスクロールされます。loading識別子の付いた空間が空き、サーバーで処理を終了するコマンドを待機する間に、アクション・リスナーがコンポーネント構造に必要な変更を処理し、panelDashboardで最適化されたレンダリングを起動します。この最適化されたレンダリングにより、loadingプレースホルダがブラウザの新規コンテンツに入れ替えられます。 |
index | int | あり | 挿入(type="insert")が行われるレンダリング済ダッシュボードの子リストの索引。サーバーで挿入が行われる前に挿入のプレースホルダが追加されるため、ユーザーがページをリロードしても、子が継続的に同じ順序で表示されるように、子の挿入場所を指定する必要があります。 |