クラス 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 StringSE
COMPONENT_FAMILY
このコンポーネントの標準コンポーネントファミリ。static StringSE
COMPONENT_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
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 void
broadcast(FacesEvent event)
イベントが実際にブロードキャストされる前に、デフォルトのUIComponentBase.broadcast(jakarta.faces.event.FacesEvent)
処理をオーバーライドして、ラップされたFacesEvent
をアンラップし、現在の行インデックスをリセットします。StringSE
createUniqueId(FacesContext context, StringSE seed)
コンポーネントの識別子を生成します。void
encodeBegin(FacesContext context)
デフォルトの動作に加えて、現在のページをエラーで再レンダリングする必要がない限り、子入力コンポーネントの保存された行ごとの状態が破棄されることを確認してください。StringSE
getClientId(FacesContext context)
-1 に設定されていない場合、rowIndex
プロパティの現在の値を含むこのコンポーネントのクライアント識別子を返します。protected DataModel
getDataModel()
このコンポーネントのレンダリングで反復するデータオブジェクトを表す内部DataModel
オブジェクトを返します。StringSE
getFamily()
このコンポーネントが属するコンポーネントファミリの識別子を返します。int
getFirst()
表示される最初の行のゼロ相対行番号を返します。UIComponent
getFooter()
このコンポーネントのフッターファセットを返します(存在する場合)。UIComponent
getHeader()
このコンポーネントのヘッダーファセットを返します(存在する場合)。int
getRowCount()
基になるデータモデルの行数を返します。ObjectSE
getRowData()
現在選択されている行インデックスのデータを表すデータオブジェクトがあれば、それを返します。int
getRowIndex()
現在選択されている行のゼロ相対インデックスを返します。int
getRows()
表示する行数を返すか、テーブルの残りのすべての行をゼロにします。ObjectSE
getValue()
UIData の値を返します。StringSE
getVar()
反復時に現在の行のデータオブジェクトが公開される request-scope 属性を返します。boolean
invokeOnComponent(FacesContext context, StringSE clientId, ContextCallback callback)
UIComponentBase.invokeOnComponent(jakarta.faces.context.FacesContext, java.lang.String, jakarta.faces.component.ContextCallback)
の動作をオーバーライドして、コンポーネントを見つけてそのコールバックを呼び出す前に、データを適切に配置するための特別な注意を提供します。boolean
isRowAvailable()
現在のrowIndex
で使用可能なrowData
があるかどうかを示すフラグを返します。boolean
isRowStatePreserved()
rowStatePreserved
JavaBeans プロパティの値を返します。void
markInitialState()
StateManager.IS_BUILDING_INITIAL_STATE
が true で 、このインスタンスのrowStatePreserved
JavaBeans プロパティがtrue
のときにメソッドが呼び出されている場合は、基本クラスのメソッドをオーバーライドして特別なアクションを実行します。void
processDecodes(FacesContext context)
デフォルトのUIComponentBase.processDecodes(jakarta.faces.context.FacesContext)
処理をオーバーライドして、以下のステップを実行します。void
processUpdates(FacesContext context)
デフォルトのUIComponentBase.processUpdates(jakarta.faces.context.FacesContext)
処理をオーバーライドして、以下のステップを実行します。void
processValidators(FacesContext context)
デフォルトのUIComponentBase.processValidators(jakarta.faces.context.FacesContext)
処理をオーバーライドして、以下のステップを実行します。void
queueEvent(FacesEvent event)
デフォルトのUIComponentBase.queueEvent(jakarta.faces.event.FacesEvent)
処理をオーバーライドして、キューに入れられたイベントをラッパーでラップし、broadcast()
の現在の行インデックスをリセットできるようにします。void
restoreState(FacesContext context, ObjectSE state)
state オブジェクトのエントリから状態を復元するために必要な処理を実行します。ObjectSE
saveState(FacesContext context)
インスタンスの状態をSerializable
オブジェクトとして取得します。protected void
setDataModel(DataModel dataModel)
内部 DataModel を設定します。void
setFirst(int first)
表示する最初の行のゼロ相対行番号を設定します。void
setFooter(UIComponent footer)
このコンポーネントのフッターファセットを設定します。void
setHeader(UIComponent header)
このコンポーネントのヘッダーファセットを設定します。void
setRowIndex(int rowIndex)
次のアルゴリズムを実装して、現在の行の相対インデックスをゼロに設定するか、現在行が選択されていないことを示す -1 を設定します。void
setRows(int rows)
表示する行数を設定するか、テーブルの残りのすべての行をゼロに設定します。void
setRowStatePreserved(boolean preserveComponentState)
このプロパティがtrue
に設定されている場合、UIData
は、反復された子への変更が行ごとに保持されるようにするための手順を実行する必要があります。void
setValue(ObjectSE value)
UIData
の値を設定します。void
setValueExpression(StringSE name, ValueExpression binding)
指定された属性またはプロパティ名がある場合は、その値の計算に使用されるValueExpression
を設定します。void
setVar(StringSE var)
反復時に現在の行のデータオブジェクトが公開される request-scope 属性を設定します。boolean
visitTree(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)
の仕様を参照してください。この仕様には、rowStatePreserved
JavaBeans プロパティが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()
rowStatePreserved
JavaBeans プロパティの値を返します。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.List
java.sql.ResultSet
java.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
- 現在のリクエストのFacesContext
clientId
- 引数コールバックに渡されるコンポーネントのクライアント識別子。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 で 、このインスタンスのrowStatePreserved
JavaBeans プロパティがtrue
のときにメソッドが呼び出されている場合は、基本クラスのメソッドをオーバーライドして特別なアクションを実行します。実行される追加のアクションは、特定の行の値に関係なく、子孫をトラバースして状態を保存することです。
- 次で指定:
- インターフェース
PartialStateHolder
のmarkInitialState
- オーバーライド:
- クラス
UIComponentBase
のmarkInitialState
- 導入:
- 2.1
restoreState
public void restoreState(FacesContext context, ObjectSE state)
インターフェースからコピーされた説明:StateHolder
state オブジェクトのエントリから状態を復元するために必要な処理を実行します。
このインターフェースを実装するクラスが、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
により、モデルがリフレッシュされます。