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 このコンポーネントの標準コンポーネント型。 |
ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, CURRENT_COMPONENT, CURRENT_COMPOSITE_COMPONENT, FACETS_KEY, HONOR_CURRENT_COMPONENT_ATTRIBUTES_PARAM_NAME, VIEW_LOCATION_KEY
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()
|
void | markInitialState()
|
void | processDecodes(FacesContext context) デフォルトの UIComponentBase.processDecodes(jakarta.faces.context.FacesContext) 処理をオーバーライドして、以下のステップを実行します。 |
void | processUpdates(FacesContext context) デフォルトの UIComponentBase.processUpdates(jakarta.faces.context.FacesContext) 処理をオーバーライドして、以下のステップを実行します。 |
void | processValidators(FacesContext context) デフォルトの |
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) このプロパティが |
void | setValue(ObjectSE value) UIData の値を設定します。 |
void | setValueBinding(StringSE name, ValueBinding binding) 使用すべきではありません。 これは setValueExpression(java.lang.String, jakarta.el.ValueExpression) に置き換えられました。 |
void | setValueExpression(StringSE name, ValueExpression binding) 指定された属性またはプロパティ名がある場合は、その値の計算に使用される ValueExpression を設定します。 |
void | setVar(StringSE var) 反復時に現在の行のデータオブジェクトが公開される request-scope 属性を設定します。 |
boolean | visitTree(VisitContext context, VisitCallback callback) |
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, getValueBinding, isRendered, isTransient, processRestoreState, processSaveState, removeFacesListener, restoreAttachedState, saveAttachedState, setId, setParent, setRendered, setRendererType, setTransient, subscribeToEvent, unsubscribeFromEvent
encodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public UIData()
デフォルトのプロパティ値で新しい UIData
インスタンスを作成します。
public StringSE getFamily()
UIComponent
このコンポーネントが属するコンポーネントファミリの識別子を返します。この識別子は、rendererType
プロパティの値と組み合わせて、このコンポーネントインスタンスに適切な Renderer
を選択するために使用できます。このメソッドは null
を返すべきではないことに注意してください
UIComponent
の getFamily
public int getFirst()
表示される最初の行のゼロ相対行番号を返します。
public void setFirst(int first)
表示する最初の行のゼロ相対行番号を設定します。
first
- 新しい最初の行番号 IllegalArgumentExceptionSE
- first
が負の場合 public UIComponent getFooter()
このコンポーネントのフッターファセットを返します(存在する場合)。getFacet("footer")
の便利なメソッド。
public void setFooter(UIComponent footer)
このコンポーネントのフッターファセットを設定します。getFacets().put("footer", footer)
の便利なメソッド。
footer
- 新しいフッターファセット NullPointerExceptionSE
- footer
が null
の場合 public UIComponent getHeader()
このコンポーネントのヘッダーファセットを返します(存在する場合)。getFacet("header")
の便利なメソッド。
public void setHeader(UIComponent header)
このコンポーネントのヘッダーファセットを設定します。getFacets().put("header", header)
の便利なメソッド。
header
- 新しいヘッダーファセット NullPointerExceptionSE
- header
が null
の場合 public boolean isRowAvailable()
現在の rowIndex
で使用可能な rowData
があるかどうかを示すフラグを返します。wrappedData
が利用できない場合は、false
を返します。
FacesException
- 行の可用性を取得するときにエラーが発生した場合 public int getRowCount()
基になるデータモデルの行数を返します。使用可能な行の数が不明な場合は、-1 を返します。
FacesException
- 行数の取得中にエラーが発生した場合 public ObjectSE getRowData()
現在選択されている行インデックスのデータを表すデータオブジェクトがあれば、それを返します。
FacesException
- 行データの取得中にエラーが発生した場合 IllegalArgumentExceptionSE
- 現在指定されている行インデックスで行データが利用できる場合 public int getRowIndex()
現在選択されている行のゼロ相対インデックスを返します。現在列に配置されていない場合は、-1 を返します。このプロパティは、値バインディング式で は有効になっていません。
FacesException
- 行インデックスの取得中にエラーが発生した場合 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
- 新しい行インデックス値、または関連する行がない場合は -1FacesException
- 行インデックスの設定中にエラーが発生した場合 IllegalArgumentExceptionSE
- rowIndex
が -1 より小さい場合 public int getRows()
表示する行数を返すか、テーブルの残りのすべての行をゼロにします。このプロパティのデフォルト値はゼロです。
public void setRows(int rows)
表示する行数を設定するか、テーブルの残りのすべての行をゼロに設定します。
rows
- 新しい行数 IllegalArgumentExceptionSE
- rows
が負の場合 public StringSE getVar()
反復時に現在の行のデータオブジェクトが公開される request-scope 属性を返します。このプロパティは、値バインディング式で は有効になっていません。
public void setVar(StringSE var)
反復時に現在の行のデータオブジェクトが公開される request-scope 属性を設定します。
var
- 新しいリクエストスコープの属性名 public boolean isRowStatePreserved()
rowStatePreserved
JavaBeans プロパティの値を返します。setRowStatePreserved(boolean)
を参照してください。
rowStatePreserved
の値。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
- 状態を保持する必要がある場合のフラグ。public ObjectSE getValue()
UIData の値を返します。この値は、型 DataModel
であるか、DataModel
に適合できる型である必要があります。UIData
は、次の型を自動的に適応させます。
java.util.List
java.sql.ResultSet
jakarta.servlet.jsp.jstl.sql.Result
java.util.Collection
他のすべての型は、ScalarDataModel
クラスを使用して適合されます。このクラスは、オブジェクトを単一行のデータとして扱います。
public void setValue(ObjectSE value)
value
- 新しい価値 @DeprecatedSE public void setValueBinding(StringSE name, ValueBinding binding)
setValueExpression(java.lang.String, jakarta.el.ValueExpression)
に置き換えられました。 "name" が "value"、"var"、"rowIndex" 以外の場合は、ValueBinding
から ValueExpression
へのスーパークラス変換に依存します。
UIComponentBase
の setValueBinding
name
- ValueBinding
を設定する属性またはプロパティの名前 binding
- 設定する ValueBinding
、または現在設定されている ValueBinding
を削除する null
IllegalArgumentExceptionSE
- name
が id
、parent
、var
、または rowIndex
のいずれかである場合 NullPointerExceptionSE
- name
が null
の場合 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
の場合 public StringSE getClientId(FacesContext context)
-1 に設定されていない場合は、rowIndex
プロパティの現在の値を含むこのコンポーネントのクライアント識別子を返します。これは、getClientId()
への複数の呼び出しが異なる結果を返す可能性があることを意味しますが、子コンポーネント自体が行固有のクライアント ID を生成できることを保証します(UIData
は NamingContainer
であるため)。
UIComponentBase
の getClientId
context
- 現在のリクエストの FacesContext
NullPointerExceptionSE
- context
が null
の場合 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
がスローされます。public void queueEvent(FacesEvent event)
デフォルトの UIComponentBase.queueEvent(jakarta.faces.event.FacesEvent)
処理をオーバーライドして、キューに入れられたイベントをラッパーでラップし、broadcast()
の現在の行インデックスをリセットできるようにします。
UIComponentBase
の queueEvent
event
- キューに入れられる FacesEvent
IllegalStateExceptionSE
- このコンポーネントが UIViewRoot
の子孫でない場合 NullPointerExceptionSE
- event
が null
の場合 public void broadcast(FacesEvent event) throws AbortProcessingException
イベントが実際にブロードキャストされる前に、デフォルトの UIComponentBase.broadcast(jakarta.faces.event.FacesEvent)
処理をオーバーライドして、ラップされた FacesEvent
をアンラップし、現在の行インデックスをリセットします。(queueEvent()
で)ラップしなかったイベントの場合、デフォルトの処理が発生します。
UIComponentBase
の broadcast
event
- 放送される FacesEvent
AbortProcessingException
- Jakarta Server Faces 実装に、現在のイベントでこれ以上の処理を実行しないことを通知します IllegalArgumentExceptionSE
- この FacesEvent
の実装クラスがこのコンポーネントでサポートされていない場合 NullPointerExceptionSE
- event
が null
の場合 public void encodeBegin(FacesContext context) throws IOExceptionSE
デフォルトの動作に加えて、現在のページをエラーで再レンダリングする必要がない限り、子入力コンポーネントの保存された行ごとの状態が破棄されることを確認してください。
UIComponentBase
の encodeBegin
context
- 現在のリクエストの FacesContextIOExceptionSE
- レンダリング中に入出力エラーが発生した場合 NullPointerExceptionSE
- context
が null
の場合 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
の場合 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
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
の場合 public StringSE createUniqueId(FacesContext context, StringSE seed)
UniqueIdVendor
コンポーネントの識別子を生成します。識別子の前には UNIQUE_ID_PREFIX が付けられ、このコンポーネントコンテナー内で一意になります。オプションで、生成された一意の ID に含める必要のある一意のシード値をコンポーネントの作成者が提供できます。
UniqueIdVendor
の createUniqueId
context
- FacesContextseed
- オプションのシード値 - 例 VDL テンプレート内のコンポーネントの位置に基づく 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()
public void markInitialState()
StateManager.IS_BUILDING_INITIAL_STATE
が true で 、このインスタンスの rowStatePreserved
JavaBeans プロパティが true
のときにメソッドが呼び出されている場合は、基本クラスのメソッドをオーバーライドして特別なアクションを実行します。
実行される追加のアクションは、特定の行の値に関係なく、子孫をトラバースして状態を保存することです。
PartialStateHolder
の markInitialState
UIComponentBase
の markInitialState
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
- 状態。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 コンテキスト。protected DataModel getDataModel()
このコンポーネントのレンダリングで反復するデータオブジェクトを表す内部 DataModel
オブジェクトを返します。
モデルが以前の setDataModel(jakarta.faces.model.DataModel)
の呼び出しによってキャッシュされている場合は、それを返します。それ以外の場合は、getValue()
を呼び出します。結果が null の場合は、空の ListDataModel
を作成して返します。結果が DataModel
のインスタンスである場合は、それを返します。それ以外の場合は、getValue()
の説明に従って結果を適合させ、それを返します。
protected void setDataModel(DataModel dataModel)
内部 DataModel を設定します。この UIData
インスタンスは、現在から setDataModel
の次の呼び出しまで、指定された DataModel
を内部値表現として使用する必要があります。指定された DataModel
が null
である場合、getDataModel()
への次の呼び出しによって新しくリフレッシュされた DataModel
の遅延インスタンス化が発生するように、内部 DataModel
をリセットする必要があります。
サブクラスは、ビューの復元フェーズ中に内部 DataModel
を復元する場合、またはレスポンスのレンダリングフェーズで現在の DataModel
を明示的にリフレッシュする場合に、このメソッドを呼び出すことがあります。
dataModel
- 新しい DataModel
または null
により、モデルがリフレッシュされます。Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.