クラス UIData
- java.lang.ObjectSE
-
- jakarta.faces.component.UIComponent
-
- jakarta.faces.component.UIComponentBase
-
- jakarta.faces.component.UIData
- 実装されているすべてのインターフェース:
NamingContainer、PartialStateHolder、StateHolder、TransientStateHolder、UniqueIdVendor、ComponentSystemEventListener、FacesListener、SystemEventListenerHolder、EventListenerSE
- 既知の直属サブクラス
HtmlDataTable
public class UIData extends UIComponentBase implements NamingContainer, UniqueIdVendor
UIData は、
DataModelインスタンスによって表されるデータオブジェクトのコレクションへのデータバインディングをサポートするUIComponentです。これは、このコンポーネント自体の現在の値です(通常はValueExpressionを介して確立されます)。データモデル内のデータの行に対する反復処理中に、現在の行のオブジェクトは、varプロパティで指定されたキーのリクエスト属性として公開されます。型
UIColumnの子のみが、このコンポーネントに関連付けられたレンダラーによって処理される必要があります。デフォルトでは、
rendererTypeプロパティはjakarta.faces.Tableに設定されています。この値は、setRendererType()メソッドを呼び出すことで変更できます。
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static StringSECOMPONENT_FAMILYこのコンポーネントの標準コンポーネントファミリ。static StringSECOMPONENT_TYPEこのコンポーネントの標準コンポーネント型。クラス jakarta.faces.component.UIComponent から継承されたフィールド
ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, FACETS_KEY, VIEW_LOCATION_KEY
インターフェース jakarta.faces.component.NamingContainer から継承されたフィールド
SEPARATOR_CHAR
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 voidbroadcast(FacesEvent event)イベントが実際にブロードキャストされる前に、デフォルトのUIComponentBase.broadcast(jakarta.faces.event.FacesEvent)処理をオーバーライドして、ラップされたFacesEventをアンラップし、現在の行インデックスをリセットします。StringSEcreateUniqueId(FacesContext context, StringSE seed)コンポーネントの識別子を生成します。voidencodeBegin(FacesContext context)デフォルトの動作に加えて、現在のページをエラーで再レンダリングする必要がない限り、子入力コンポーネントの保存された行ごとの状態が破棄されることを確認してください。StringSEgetClientId(FacesContext context)-1 に設定されていない場合、rowIndexプロパティの現在の値を含むこのコンポーネントのクライアント識別子を返します。protected DataModelgetDataModel()このコンポーネントのレンダリングで反復するデータオブジェクトを表す内部DataModelオブジェクトを返します。StringSEgetFamily()このコンポーネントが属するコンポーネントファミリの識別子を返します。intgetFirst()表示される最初の行のゼロ相対行番号を返します。UIComponentgetFooter()このコンポーネントのフッターファセットを返します(存在する場合)。UIComponentgetHeader()このコンポーネントのヘッダーファセットを返します(存在する場合)。intgetRowCount()基になるデータモデルの行数を返します。ObjectSEgetRowData()現在選択されている行インデックスのデータを表すデータオブジェクトがあれば、それを返します。intgetRowIndex()現在選択されている行のゼロ相対インデックスを返します。intgetRows()表示する行数を返すか、テーブルの残りのすべての行をゼロにします。ObjectSEgetValue()UIData の値を返します。StringSEgetVar()反復時に現在の行のデータオブジェクトが公開される request-scope 属性を返します。booleaninvokeOnComponent(FacesContext context, StringSE clientId, ContextCallback callback)UIComponentBase.invokeOnComponent(jakarta.faces.context.FacesContext, java.lang.String, jakarta.faces.component.ContextCallback)の動作をオーバーライドして、コンポーネントを見つけてそのコールバックを呼び出す前に、データを適切に配置するための特別な注意を提供します。booleanisRowAvailable()現在のrowIndexで使用可能なrowDataがあるかどうかを示すフラグを返します。booleanisRowStatePreserved()rowStatePreservedJavaBeans プロパティの値を返します。voidmarkInitialState()StateManager.IS_BUILDING_INITIAL_STATEが true で 、このインスタンスのrowStatePreservedJavaBeans プロパティがtrueのときにメソッドが呼び出されている場合は、基本クラスのメソッドをオーバーライドして特別なアクションを実行します。voidprocessDecodes(FacesContext context)デフォルトのUIComponentBase.processDecodes(jakarta.faces.context.FacesContext)処理をオーバーライドして、以下のステップを実行します。voidprocessUpdates(FacesContext context)デフォルトのUIComponentBase.processUpdates(jakarta.faces.context.FacesContext)処理をオーバーライドして、以下のステップを実行します。voidprocessValidators(FacesContext context)デフォルトのUIComponentBase.processValidators(jakarta.faces.context.FacesContext)処理をオーバーライドして、以下のステップを実行します。voidqueueEvent(FacesEvent event)デフォルトのUIComponentBase.queueEvent(jakarta.faces.event.FacesEvent)処理をオーバーライドして、キューに入れられたイベントをラッパーでラップし、broadcast()の現在の行インデックスをリセットできるようにします。voidrestoreState(FacesContext context, ObjectSE state)state オブジェクトのエントリから状態を復元するために必要な処理を実行します。ObjectSEsaveState(FacesContext context)インスタンスの状態をSerializableオブジェクトとして取得します。protected voidsetDataModel(DataModel dataModel)内部 DataModel を設定します。voidsetFirst(int first)表示する最初の行のゼロ相対行番号を設定します。voidsetFooter(UIComponent footer)このコンポーネントのフッターファセットを設定します。voidsetHeader(UIComponent header)このコンポーネントのヘッダーファセットを設定します。voidsetRowIndex(int rowIndex)次のアルゴリズムを実装して、現在の行の相対インデックスをゼロに設定するか、現在行が選択されていないことを示す -1 を設定します。voidsetRows(int rows)表示する行数を設定するか、テーブルの残りのすべての行をゼロに設定します。voidsetRowStatePreserved(boolean preserveComponentState)このプロパティがtrueに設定されている場合、UIDataは、反復された子への変更が行ごとに保持されるようにするための手順を実行する必要があります。voidsetValue(ObjectSE value)UIDataの値を設定します。voidsetValueExpression(StringSE name, ValueExpression binding)指定された属性またはプロパティ名がある場合は、その値の計算に使用されるValueExpressionを設定します。voidsetVar(StringSE var)反復時に現在の行のデータオブジェクトが公開される request-scope 属性を設定します。booleanvisitTree(VisitContext context, VisitCallback callback)クラス jakarta.faces.component.UIComponentBase から継承されたメソッド
addClientBehavior, addFacesListener, clearInitialState, decode, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientBehaviors, getDefaultEventName, getEventNames, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getListenersForEventClass, getParent, getPassThroughAttributes, getRenderer, getRendererType, getRendersChildren, isRendered, isTransient, processRestoreState, processSaveState, removeFacesListener, restoreAttachedState, saveAttachedState, setId, setParent, setRendered, setRendererType, setTransient, subscribeToEvent, unsubscribeFromEvent
クラス jakarta.faces.component.UIComponent から継承されたメソッド
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView
コンストラクターの詳細
UIData
public UIData()
デフォルトのプロパティ値で新しい
UIDataインスタンスを作成します。
メソッドの詳細
getFamily
public StringSE getFamily()
クラスからコピーされた説明:UIComponentこのコンポーネントが属するコンポーネントファミリの識別子を返します。この識別子は、
rendererTypeプロパティの値と組み合わせて、このコンポーネントインスタンスに適切なRendererを選択するために使用できます。このメソッドはnullを返すべきではないことに注意してください- 次で指定:
- クラス
UIComponentのgetFamily - 戻り値:
- コンポーネントファミリ(null 以外)。
getFirst
public int getFirst()
表示される最初の行のゼロ相対行番号を返します。
- 戻り値:
- 行番号。
setFirst
public void setFirst(int first)
表示する最初の行のゼロ相対行番号を設定します。
- パラメーター:
first- 新しい最初の行番号- 例外:
IllegalArgumentExceptionSE-firstが負の場合
getFooter
public UIComponent getFooter()
このコンポーネントのフッターファセットを返します(存在する場合)。
getFacet("footer")の便利なメソッド。- 戻り値:
- フッターファセット。
setFooter
public void setFooter(UIComponent footer)
このコンポーネントのフッターファセットを設定します。
getFacets().put("footer", footer)の便利なメソッド。- パラメーター:
footer- 新しいフッターファセット- 例外:
NullPointerExceptionSE-footerがnullの場合
getHeader
public UIComponent getHeader()
このコンポーネントのヘッダーファセットを返します(存在する場合)。
getFacet("header")の便利なメソッド。- 戻り値:
- ヘッダーファセット。
setHeader
public void setHeader(UIComponent header)
このコンポーネントのヘッダーファセットを設定します。
getFacets().put("header", header)の便利なメソッド。- パラメーター:
header- 新しいヘッダーファセット- 例外:
NullPointerExceptionSE-headerがnullの場合
isRowAvailable
public boolean isRowAvailable()
現在の
rowIndexで使用可能なrowDataがあるかどうかを示すフラグを返します。wrappedDataが利用できない場合は、falseを返します。- 戻り値:
- 行が使用可能かどうか。
- 例外:
FacesException- 行の可用性を取得するときにエラーが発生した場合
getRowCount
public int getRowCount()
基になるデータモデルの行数を返します。使用可能な行の数が不明な場合は、-1 を返します。
- 戻り値:
- 行数。
- 例外:
FacesException- 行数の取得中にエラーが発生した場合
getRowData
public ObjectSE getRowData()
現在選択されている行インデックスのデータを表すデータオブジェクトがあれば、それを返します。
- 戻り値:
- 行データ。
- 例外:
FacesException- 行データの取得中にエラーが発生した場合IllegalArgumentExceptionSE- 現在指定されている行インデックスで行データが利用できる場合
getRowIndex
public int getRowIndex()
現在選択されている行のゼロ相対インデックスを返します。現在列に配置されていない場合は、-1 を返します。このプロパティは、値バインディング式で は有効になっていません。
- 戻り値:
- 行インデックス。
- 例外:
FacesException- 行インデックスの取得中にエラーが発生した場合
setRowIndex
public void setRowIndex(int rowIndex)
次のアルゴリズムを実装して、現在の行の相対インデックスをゼロに設定するか、現在行が選択されていないことを示す -1 を設定します。基になるデータコレクションに行データが含まれていない値に行インデックスを設定することができます。呼び出し元は
isRowAvailable()メソッドを使用して、行データがgetRowData()メソッドで使用できるかどうかを検出できます。子孫間の一時状態をサポートするには、
setRowStatePreserved(boolean)の仕様を参照してください。この仕様には、rowStatePreservedJavaBeans プロパティがtrueに設定されている場合のsetRowIndex()の要件が詳しく説明されています。- すべての子孫コンポーネントの現在の状態情報を保存します(以下で説明します)。
- 新しい行インデックスを格納し、それをこの
UIDataインスタンスに関連付けられたDataModelに渡します。 - 新しい
rowIndex値が -1 の場合:varプロパティが null でない場合は、対応するリクエストスコープ属性(存在する場合)を削除します。- すべての子孫コンポーネントの状態情報をリセットします(以下で説明します)。
- 新しい
rowIndex値が -1 でない場合:varプロパティが null でない場合は、getRowData()を呼び出し、結果のデータオブジェクトを、キーがvarプロパティ値であるリクエストスコープ属性として公開します。- すべての子孫コンポーネントの状態情報をリセットします(以下で説明します)。
すべての子孫コンポーネントの現在の状態情報を保存するには、
UIDataは各子孫の行ごとの情報を次のように維持する必要があります。- 子孫が
EditableValueHolderのインスタンスである場合は、そのlocalValueプロパティの状態を保存します。 - 子孫が
EditableValueHolderのインスタンスである場合は、localValueSetプロパティの状態を保存します。 - 子孫が
EditableValueHolderのインスタンスである場合は、validプロパティの状態を保存します。 - 子孫が
EditableValueHolderのインスタンスである場合は、submittedValueプロパティの状態を保存します。
すべての子孫コンポーネントの現在の状態情報を復元するには、
UIDataは、現在のrowIndexについて以前に保存された情報を参照し、次のように各子孫に対して setter を呼び出す必要があります。- 子孫が
EditableValueHolderのインスタンスである場合は、valueプロパティを復元します。 - 子孫が
EditableValueHolderのインスタンスである場合は、localValueSetプロパティの状態を復元します。 - 子孫が
EditableValueHolderのインスタンスである場合は、validプロパティの状態を復元します。 - 子孫が
EditableValueHolderのインスタンスである場合は、submittedValueプロパティの状態を復元します。
- パラメーター:
rowIndex- 新しい行インデックス値、または関連する行がない場合は -1- 例外:
FacesException- 行インデックスの設定中にエラーが発生した場合IllegalArgumentExceptionSE-rowIndexが -1 より小さい場合
getRows
public int getRows()
表示する行数を返すか、テーブルの残りのすべての行をゼロにします。このプロパティのデフォルト値はゼロです。
- 戻り値:
- 行数。
setRows
public void setRows(int rows)
表示する行数を設定するか、テーブルの残りのすべての行をゼロに設定します。
- パラメーター:
rows- 新しい行数- 例外:
IllegalArgumentExceptionSE-rowsが負の場合
getVar
public StringSE getVar()
反復時に現在の行のデータオブジェクトが公開される request-scope 属性を返します。このプロパティは、値バインディング式で は有効になっていません。
- 戻り値:
- 彼は request-scope 属性です。
setVar
public void setVar(StringSE var)
反復時に現在の行のデータオブジェクトが公開される request-scope 属性を設定します。
- パラメーター:
var- 新しいリクエストスコープの属性名
isRowStatePreserved
public boolean isRowStatePreserved()
rowStatePreservedJavaBeans プロパティの値を返します。setRowStatePreserved(boolean)を参照してください。- 戻り値:
rowStatePreservedの値。- 導入:
- 2.1
setRowStatePreserved
public void setRowStatePreserved(boolean preserveComponentState)
このプロパティが
trueに設定されている場合、UIDataは、反復された子への変更が行ごとに保持されるようにするための手順を実行する必要があります。これにより、アプリケーションは、すべての行にそのような変更を適用するのではなく、特定の行のスタイルクラスなどのコンポーネントプロパティを変更できます。これを実現するには、
UIDataはその子でStateHolder.saveState(jakarta.faces.context.FacesContext)とTransientStateHolder.saveTransientState(jakarta.faces.context.FacesContext)を呼び出して、各行を出るときの状態をキャプチャーする必要があります。行に再度入るとき、子を新しい行の正しい状態に再初期化するために、StateHolder.restoreState(jakarta.faces.context.FacesContext, java.lang.Object)およびTransientStateHolder.restoreTransientState(jakarta.faces.context.FacesContext, java.lang.Object)を呼び出す必要があります。このアクションはすべて、setRowIndex(int)の処理中に実行する必要があります。ユーザーは、
UIDataの子のプロパティを行固有の方法で変更する必要がある場合に、この機能を有効にすることを検討する必要があります。ただし、行レベルの状態の保存 / 復元はオーバーヘッドを追加することに注意してください。そのため、この機能は慎重に使用する必要があります。- パラメーター:
preserveComponentState- 状態を保持する必要がある場合のフラグ。- 導入:
- 2.1
getValue
public ObjectSE getValue()
UIData の値を返します。この値は、型
DataModelであるか、DataModelに適合できる型である必要があります。UIDataは、次の型を自動的に適応させます。- 配列
java.util.Listjava.sql.ResultSetjava.util.Collection
他のすべての型は、
ScalarDataModelクラスを使用して適合されます。このクラスは、オブジェクトを単一行のデータとして扱います。- 戻り値:
- 値のオブジェクト。
setValue
public void setValue(ObjectSE value)
- パラメーター:
value- 新しい価値
setValueExpression
public void setValueExpression(StringSE name, ValueExpression binding)
指定された属性またはプロパティ名(存在する場合)の値を計算するために使用される
ValueExpressionを設定します。さらに、valueプロパティにValueExpressionが設定されている場合は、このコンポーネントに以前にバインドされたデータの合成されたDataModelをすべて削除します。- オーバーライド:
- クラス
UIComponentのsetValueExpression - パラメーター:
name-ValueExpressionを設定する属性またはプロパティの名前binding- 設定するValueExpression、または現在設定されているValueExpressionを削除するnull- 例外:
IllegalArgumentExceptionSE-nameがid、parent、var、またはrowIndexのいずれかである場合NullPointerExceptionSE-nameがnullの場合- 導入:
- 1.2
getClientId
public StringSE getClientId(FacesContext context)
-1 に設定されていない場合は、
rowIndexプロパティの現在の値を含むこのコンポーネントのクライアント識別子を返します。これは、getClientId()への複数の呼び出しが異なる結果を返す可能性があることを意味しますが、子コンポーネント自体が行固有のクライアント ID を生成できることを保証します(UIDataはNamingContainerであるため)。- オーバーライド:
- クラス
UIComponentBaseのgetClientId - パラメーター:
context- 現在のリクエストのFacesContext- 戻り値:
- クライアント ID。
- 例外:
NullPointerExceptionSE-contextがnullの場合
invokeOnComponent
public boolean invokeOnComponent(FacesContext context, StringSE clientId, ContextCallback callback) throws FacesException
UIComponentBase.invokeOnComponent(jakarta.faces.context.FacesContext, java.lang.String, jakarta.faces.component.ContextCallback)の動作をオーバーライドして、コンポーネントを見つけてそのコールバックを呼び出す前に、データを適切に配置するための特別な配慮を提供します。引数clientIdがthis.getClientId()に等しい場合は、単にcontextCallbackを呼び出し、context引数と this を引数として渡して、true.を返します。引数clientIdがthis.getClientId()に等しくない場合は、このUIDataインスタンスのファセットの子それぞれをインスペクションし、それぞれについて、そのclientIdを引数clientIdと比較します。一致するものがある場合は、contextCallbackを呼び出し、context引数と this を引数として渡して、trueを返します。それ以外の場合は、clientIdから rowIndex を抽出しようとします。例: 引数clientIdがform:data:3:customerHeaderの場合、rowIndex は3になります。この値をnewIndexと呼びます。このインスタンスの現在の rowIndex は、検索の結果やプロセスで例外がスローされたかどうかに関係なく、必ず保存しておいて、戻る前に復元する必要があります。このインスタンスの rowIndex を
newIndexと等しくなるように設定するとそのインスタンスがisRowAvailable()からfalseを返す場合、このメソッドの実装はtrueを返してはなりません。- オーバーライド:
- クラス
UIComponentBaseのinvokeOnComponent - パラメーター:
context- 現在のリクエストのFacesContextclientId- 引数コールバックに渡されるコンポーネントのクライアント識別子。callback- Callback インターフェースの実装。- 戻り値:
true指定されたclientIdを持つコンポーネントが見つかった場合、そのコンポーネントを引数として渡してコールバックメソッドが正常に呼び出され、例外はスローされませんでした。指定されたclientIdのコンポーネントが見つからない場合、falseを返します。- 例外:
NullPointerExceptionSE- いずれかの引数が null の場合FacesException- 引数 Callback が例外をスローした場合、FacesExceptionにラップされて再スローされます。引数clientIdから rowIndex を派生するときに例外がスローされた場合も、FacesExceptionがスローされます。- 導入:
- 1.2
queueEvent
public void queueEvent(FacesEvent event)
デフォルトの
UIComponentBase.queueEvent(jakarta.faces.event.FacesEvent)処理をオーバーライドして、キューに入れられたイベントをラッパーでラップし、broadcast()の現在の行インデックスをリセットできるようにします。- オーバーライド:
- クラス
UIComponentBaseのqueueEvent - パラメーター:
event- キューに入れられるFacesEvent- 例外:
IllegalStateExceptionSE- このコンポーネントがUIViewRootの子孫でない場合NullPointerExceptionSE-eventがnullの場合
broadcast
public void broadcast(FacesEvent event) throws AbortProcessingException
イベントが実際にブロードキャストされる前に、デフォルトの
UIComponentBase.broadcast(jakarta.faces.event.FacesEvent)処理をオーバーライドして、ラップされたFacesEventをアンラップし、現在の行インデックスをリセットします。(queueEvent()で)ラップしなかったイベントの場合、デフォルトの処理が発生します。- オーバーライド:
- クラス
UIComponentBaseのbroadcast - パラメーター:
event- 放送されるFacesEvent- 例外:
AbortProcessingException- Jakarta Faces 実装に、現在のイベントでこれ以上の処理を実行しないことを通知しますIllegalArgumentExceptionSE- このFacesEventの実装クラスがこのコンポーネントでサポートされていない場合NullPointerExceptionSE-eventがnullの場合
encodeBegin
public void encodeBegin(FacesContext context) throws IOExceptionSE
デフォルトの動作に加えて、現在のページをエラーで再レンダリングする必要がない限り、子入力コンポーネントの保存された行ごとの状態が破棄されることを確認してください。
- オーバーライド:
- クラス
UIComponentBaseのencodeBegin - パラメーター:
context- 現在のリクエストの FacesContext- 例外:
IOExceptionSE- レンダリング中に入出力エラーが発生した場合NullPointerExceptionSE-contextがnullの場合
processDecodes
public void processDecodes(FacesContext context)
デフォルトの
UIComponentBase.processDecodes(jakarta.faces.context.FacesContext)処理をオーバーライドして、以下のステップを実行します。- この
UIComponentのrenderedプロパティがfalseの場合、以降の処理をスキップします。 - 現在の
rowIndexを -1 に設定します。 - この
UIDataのすべてのファセットのprocessDecodes()メソッドを、getFacets().keySet().iterator()の呼び出しによって決定された順序で呼び出します。 - この
UIDataのUIColumn子のすべてのファセットのprocessDecodes()メソッドを呼び出します。 - このコンポーネントがレンダリングされたときに含まれていた行のセット(つまり、
firstおよびrowsプロパティによって定義された行)を反復処理し、各行に対して次の処理を実行します。 - 現在の
rowIndexを -1 に設定します。 - このコンポーネントの
decode()メソッドを呼び出します。 - デコード処理中に
RuntimeExceptionがスローされた場合は、FacesContext.renderResponse()を呼び出して例外を再スローします。
- オーバーライド:
- クラス
UIComponentBaseのprocessDecodes - パラメーター:
context- 現在のリクエストのFacesContext- 例外:
NullPointerExceptionSE-contextがnullの場合
- この
processValidators
public void processValidators(FacesContext context)
デフォルトの
UIComponentBase.processValidators(jakarta.faces.context.FacesContext)処理をオーバーライドして、以下のステップを実行します。- この
UIComponentのrenderedプロパティがfalseの場合、以降の処理をスキップします。 - 現在の
rowIndexを -1 に設定します。 - この
UIDataのすべてのファセットのprocessValidators()メソッドを、getFacets().keySet().iterator()の呼び出しによって決定された順序で呼び出します。 - この
UIDataのUIColumn子のすべてのファセットのprocessValidators()メソッドを呼び出します。 - このコンポーネントがレンダリングされたときに含まれていた行のセット(つまり、
firstおよびrowsプロパティによって定義された行)を反復処理し、各行に対して次の処理を実行します。 - 現在の
rowIndexを -1 に設定します。
- オーバーライド:
- クラス
UIComponentBaseのprocessValidators - パラメーター:
context- 現在のリクエストのFacesContext- 例外:
NullPointerExceptionSE-contextがnullの場合- 関連事項:
PreValidateEvent,PostValidateEvent
- この
processUpdates
public void processUpdates(FacesContext context)
デフォルトの
UIComponentBase.processUpdates(jakarta.faces.context.FacesContext)処理をオーバーライドして、以下のステップを実行します。- この
UIComponentのrenderedプロパティがfalseの場合、以降の処理をスキップします。 - 現在の
rowIndexを -1 に設定します。 - この
UIDataのすべてのファセットのprocessUpdates()メソッドを、getFacets().keySet().iterator()の呼び出しによって決定された順序で呼び出します。 - この
UIDataのUIColumn子のすべてのファセットのprocessUpdates()メソッドを呼び出します。 - このコンポーネントがレンダリングされたときに含まれていた行のセット(つまり、
firstおよびrowsプロパティによって定義された行)を反復処理し、各行に対して次の処理を実行します。 - 現在の
rowIndexを -1 に設定します。
- オーバーライド:
- クラス
UIComponentBaseのprocessUpdates - パラメーター:
context- 現在のリクエストのFacesContext- 例外:
NullPointerExceptionSE-contextがnullの場合
- この
createUniqueId
public StringSE createUniqueId(FacesContext context, StringSE seed)
インターフェースからコピーされた説明:UniqueIdVendorコンポーネントの識別子を生成します。識別子の前には UNIQUE_ID_PREFIX が付けられ、このコンポーネントコンテナー内で一意になります。オプションで、生成された一意の ID に含める必要のある一意のシード値をコンポーネントの作成者が提供できます。
- 次で指定:
- インターフェース
UniqueIdVendorのcreateUniqueId - パラメーター:
context- FacesContextseed- オプションのシード値 - 例 VDL テンプレート内のコンポーネントの位置に基づく- 戻り値:
- このコンポーネントコンテナーの一意の ID
visitTree
public boolean visitTree(VisitContext context, VisitCallback callback)
UIComponent.visitTree(jakarta.faces.component.visit.VisitContext, jakarta.faces.component.visit.VisitCallback)の動作をオーバーライドして、反復を正しく処理します。このインスタンスの
UIComponent.isVisitable(jakarta.faces.component.visit.VisitContext)メソッドがfalseを返す場合は、アクションを実行せずに戻ります。UIComponent.pushComponentToEL(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent)を呼び出して、UIComponent.visitTree(jakarta.faces.component.visit.VisitContext, jakarta.faces.component.visit.VisitCallback)に従って、このUIDataインスタンスで visit コールバックを呼び出します。呼び出しの結果を visitResult にします。visitResult がVisitResult.COMPLETEの場合は、それ以上のアクションは実行せず、trueを返します。それ以外の場合は、子を訪問する必要があるかどうかを判断します。デフォルトの実装では、引数としてthisを渡してVisitContext.getSubtreeIdsToVisit(jakarta.faces.component.UIComponent)を呼び出します。その呼び出しの結果が空でない場合は、doVisitChildren をtrueにします。doVisitChildren がtrueで、visitResult がVisitResult.ACCEPTの場合は、次のアクションを実行します。このコンポーネントにファセットがある場合は、このインスタンスで
UIComponent.getFacets()を呼び出し、values()メソッドを呼び出します。返されたMapのUIComponentごとに、UIComponent.visitTree(jakarta.faces.component.visit.VisitContext, jakarta.faces.component.visit.VisitCallback)を呼び出します。このコンポーネントに子がある場合、
UIColumnの子ごとに:その
UIColumnインスタンスでVisitContext.invokeVisitCallback(jakarta.faces.component.UIComponent, jakarta.faces.component.visit.VisitCallback)を呼び出します。そのような呼び出しがtrueを返す場合は、訪問を終了し、このメソッドからtrueを返します。子
UIColumnにファセットがある場合は、それぞれでUIComponent.visitTree(jakarta.faces.component.visit.VisitContext, jakarta.faces.component.visit.VisitCallback)を呼び出します。UIColumn以外の子供には何もしません。rowsToProcess を
getRows()からの戻り値とします。rowIndex を
getFirst()- 1 からの戻り値とします。処理される行数が rowsToProcess 未満の場合は、次のアクションを実行します。
setRowIndex(int)を呼び出し、現在の行インデックスを渡します。isRowAvailable()がfalseを返す場合は、それ以上のアクションを実行せずにfalseを返します。この
UIColumnインスタンスの各子でUIComponent.visitTree(jakarta.faces.component.visit.VisitContext, jakarta.faces.component.visit.VisitCallback)を呼び出します。
UIComponent.popComponentFromEL(jakarta.faces.context.FacesContext)を呼び出し、setRowIndex(int)を呼び出して、保存された行インデックスを復元します。falseを返して、訪問を続行できるようにします。- オーバーライド:
- クラス
UIComponentのvisitTree - パラメーター:
context- 訪問を実行するためのコンテキストを提供するVisitContext。callback- 訪問で検出されたノードごとに呼び出されるコールバック。- 戻り値:
- コンポーネントの実装は、
trueを返し、ツリーの訪問が完了したことを示す場合があります(訪問する必要のあるすべてのコンポーネントが訪問されたなど)。これにより、ツリーへのアクセスが短絡され、アクセスされるコンポーネントがなくなります。 - 例外:
NullPointerExceptionSE- パラメーターのいずれかがnullの場合。- 関連事項:
VisitContext.invokeVisitCallback()
markInitialState
public void markInitialState()
StateManager.IS_BUILDING_INITIAL_STATEが true で 、このインスタンスのrowStatePreservedJavaBeans プロパティがtrueのときにメソッドが呼び出されている場合は、基本クラスのメソッドをオーバーライドして特別なアクションを実行します。実行される追加のアクションは、特定の行の値に関係なく、子孫をトラバースして状態を保存することです。
- 次で指定:
- インターフェース
PartialStateHolderのmarkInitialState - オーバーライド:
- クラス
UIComponentBaseのmarkInitialState - 導入:
- 2.1
restoreState
public void restoreState(FacesContext context, ObjectSE state)
インターフェースからコピーされた説明:StateHolderstate オブジェクトのエントリから状態を復元するために必要な処理を実行します。
このインターフェースを実装するクラスが、StateHolder も実装するインスタンスへの参照を持っている場合(イベントハンドラー、バリデーターなどを備えた
UIComponentなど)、このメソッドはそれらすべてのインスタンスでStateHolder.restoreState(jakarta.faces.context.FacesContext, java.lang.Object)メソッドも呼び出す必要があります。state引数がnullの場合、アクションを実行せずに戻ります。- 次で指定:
- インターフェース
StateHolderのrestoreState - オーバーライド:
- クラス
UIComponentBaseのrestoreState - パラメーター:
context- Faces コンテキスト。state- 状態。
saveState
public ObjectSE saveState(FacesContext context)
インターフェースからコピーされた説明:StateHolderインスタンスの状態を
Serializableオブジェクトとして取得します。このインターフェースを実装するクラスが、StateHolder を実装するインスタンス(イベントハンドラー、バリデーターなどを含む
UIComponentなど)への参照を持っている場合、このメソッドはそれらすべてのインスタンスでStateHolder.saveState(jakarta.faces.context.FacesContext)メソッドも呼び出す必要があります。このメソッドは、子とファセットの状態を保存してはなりませんそれはStateManagerを介して行われますこのメソッドは、実装オブジェクトの状態を変更してはなりません。つまり、このコードを実行した後:
Object state = component.saveState(facesContext);componentは、実行前と同じでなければなりません。このメソッドからの戻り値は
Serializableでなければなりません- 次で指定:
- インターフェース
StateHolderのsaveState - オーバーライド:
- クラス
UIComponentBaseのsaveState - パラメーター:
context- Faces コンテキスト。- 戻り値:
- 保存された状態。
getDataModel
protected DataModel getDataModel()
このコンポーネントのレンダリングで反復するデータオブジェクトを表す内部
DataModelオブジェクトを返します。モデルが以前の
setDataModel(jakarta.faces.model.DataModel)の呼び出しによってキャッシュされている場合は、それを返します。それ以外の場合は、getValue()を呼び出します。結果が null の場合は、空のListDataModelを作成して返します。結果がDataModelのインスタンスである場合は、それを返します。それ以外の場合は、getValue()の説明に従って結果を適合させ、それを返します。- 戻り値:
- データモデル。
setDataModel
protected void setDataModel(DataModel dataModel)
内部 DataModel を設定します。この
UIDataインスタンスは、現在からsetDataModelの次の呼び出しまで、指定されたDataModelを内部値表現として使用する必要があります。指定されたDataModelがnullである場合、getDataModel()への次の呼び出しによって新しくリフレッシュされたDataModelの遅延インスタンス化が発生するように、内部DataModelをリセットする必要があります。サブクラスは、ビューの復元フェーズ中に内部
DataModelを復元する場合、またはレスポンスのレンダリングフェーズで現在のDataModelを明示的にリフレッシュする場合に、このメソッドを呼び出すことがあります。- パラメーター:
dataModel- 新しいDataModelまたはnullにより、モデルがリフレッシュされます。