パッケージ jakarta.faces.component

クラス UIData

    • フィールドの詳細

      • COMPONENT_FAMILY

        public static final StringSE COMPONENT_FAMILY

        このコンポーネントの標準コンポーネントファミリ。

        関連事項:
        定数フィールド値
    • コンストラクターの詳細

      • UIData

        public UIData()

        デフォルトのプロパティ値で新しい UIData インスタンスを作成します。

    • メソッドの詳細

      • getFamily

        public StringSE getFamily()
        クラスからコピーされた説明: UIComponent

        このコンポーネントが属するコンポーネントファミリの識別子を返します。この識別子は、rendererType プロパティの値と組み合わせて、このコンポーネントインスタンスに適切な Renderer を選択するために使用できます。このメソッドは null を返すべきではないことに注意してください

        次で指定:
        クラス UIComponentgetFamily 
        戻り値:
        コンポーネントファミリ(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)

        UIData の値を設定します。この値は、型 DataModel であるか、DataModel に適合できる型である必要があります。

        パラメーター:
        value - 新しい価値
      • setValueExpression

        public void setValueExpression​(StringSE name,
                                       ValueExpression binding)

        指定された属性またはプロパティ名(存在する場合)の値を計算するために使用される ValueExpression を設定します。さらに、value プロパティに ValueExpression が設定されている場合は、このコンポーネントに以前にバインドされたデータの合成された DataModel をすべて削除します。

        オーバーライド:
        クラス UIComponentsetValueExpression 
        パラメーター:
        name - ValueExpression を設定する属性またはプロパティの名前
        binding - 設定する ValueExpression、または現在設定されている ValueExpression を削除する null 
        例外:
        IllegalArgumentExceptionSE - name が idparentvar、または rowIndex のいずれかである場合
        NullPointerExceptionSE - name が null の場合
        導入:
        1.2
      • getClientId

        public StringSE getClientId​(FacesContext context)

        -1 に設定されていない場合は、rowIndex プロパティの現在の値を含むこのコンポーネントのクライアント識別子を返します。これは、getClientId() への複数の呼び出しが異なる結果を返す可能性があることを意味しますが、子コンポーネント自体が行固有のクライアント ID を生成できることを保証します(UIDataNamingContainer であるため)。

        オーバーライド:
        クラス UIComponentBasegetClientId 
        パラメーター:
        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 を返してはなりません。

        オーバーライド:
        クラス UIComponentBaseinvokeOnComponent 
        パラメーター:
        context - 現在のリクエストの FacesContext
        clientId - 引数コールバックに渡されるコンポーネントのクライアント識別子。
        callback - Callback インターフェースの実装。
        戻り値:
        true 指定された clientId を持つコンポーネントが見つかった場合、そのコンポーネントを引数として渡してコールバックメソッドが正常に呼び出され、例外はスローされませんでした。指定された clientId のコンポーネントが見つからない場合、false を返します。
        例外:
        NullPointerExceptionSE - いずれかの引数が null の場合
        FacesException - 引数 Callback が例外をスローした場合、FacesException にラップされて再スローされます。引数 clientId から rowIndex を派生するときに例外がスローされた場合も、FacesException がスローされます。
        導入:
        1.2
      • encodeBegin

        public void encodeBegin​(FacesContext context)
                         throws IOExceptionSE

        デフォルトの動作に加えて、現在のページをエラーで再レンダリングする必要がない限り、子入力コンポーネントの保存された行ごとの状態が破棄されることを確認してください。

        オーバーライド:
        クラス UIComponentBaseencodeBegin 
        パラメーター:
        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() の呼び出しによって決定された順序で呼び出します。
        • この UIDataUIColumn 子のすべてのファセットの processDecodes() メソッドを呼び出します。
        • このコンポーネントがレンダリングされたときに含まれていた行のセット(つまり、first および rows プロパティによって定義された行)を反復処理し、各行に対して次の処理を実行します。
          • 現在の rowIndex をこの行の適切な値に設定します。
          • isRowAvailable() が true を返す場合、この UIData コンポーネントの各 UIColumn 子の子コンポーネントを反復処理し、そのような子ごとに processDecodes() メソッドを呼び出します。
        • 現在の rowIndex を -1 に設定します。
        • このコンポーネントの decode() メソッドを呼び出します。
        • デコード処理中に RuntimeException がスローされた場合は、FacesContext.renderResponse() を呼び出して例外を再スローします。
        オーバーライド:
        クラス UIComponentBaseprocessDecodes 
        パラメーター:
        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() の呼び出しによって決定された順序で呼び出します。
        • この UIDataUIColumn 子のすべてのファセットの processValidators() メソッドを呼び出します。
        • このコンポーネントがレンダリングされたときに含まれていた行のセット(つまり、first および rows プロパティによって定義された行)を反復処理し、各行に対して次の処理を実行します。
          • 現在の rowIndex をこの行の適切な値に設定します。
          • isRowAvailable() が true を返す場合、この UIData コンポーネントの各 UIColumn 子の子コンポーネントを反復処理し、そのような子ごとに processValidators() メソッドを呼び出します。
        • 現在の rowIndex を -1 に設定します。
        オーバーライド:
        クラス UIComponentBaseprocessValidators 
        パラメーター:
        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() の呼び出しによって決定された順序で呼び出します。
        • この UIDataUIColumn 子のすべてのファセットの processUpdates() メソッドを呼び出します。
        • このコンポーネントがレンダリングされたときに含まれていた行のセット(つまり、first および rows プロパティによって定義された行)を反復処理し、各行に対して次の処理を実行します。
          • 現在の rowIndex をこの行の適切な値に設定します。
          • isRowAvailable() が true を返す場合、この UIData コンポーネントの各 UIColumn 子の子コンポーネントを反復処理し、そのような子ごとに processUpdates() メソッドを呼び出します。
        • 現在の rowIndex を -1 に設定します。
        オーバーライド:
        クラス UIComponentBaseprocessUpdates 
        パラメーター:
        context - 現在のリクエストの FacesContext
        例外:
        NullPointerExceptionSE - context が null の場合
      • createUniqueId

        public StringSE createUniqueId​(FacesContext context,
                                     StringSE seed)
        インターフェースからコピーされた説明: UniqueIdVendor

        コンポーネントの識別子を生成します。識別子の前には UNIQUE_ID_PREFIX が付けられ、このコンポーネントコンテナー内で一意になります。オプションで、生成された一意の ID に含める必要のある一意のシード値をコンポーネントの作成者が提供できます。

        次で指定:
        インターフェース UniqueIdVendorcreateUniqueId 
        パラメーター:
        context - FacesContext
        seed - オプションのシード値 - 例 VDL テンプレート内のコンポーネントの位置に基づく
        戻り値:
        このコンポーネントコンテナーの一意の ID
      • markInitialState

        public void markInitialState()

        StateManager.IS_BUILDING_INITIAL_STATE が true で 、このインスタンスの rowStatePreserved JavaBeans プロパティが true のときにメソッドが呼び出されている場合は、基本クラスのメソッドをオーバーライドして特別なアクションを実行します。

        実行される追加のアクションは、特定の行の値に関係なく、子孫をトラバースして状態を保存することです。

        次で指定:
        インターフェース PartialStateHoldermarkInitialState 
        オーバーライド:
        クラス UIComponentBasemarkInitialState 
        導入:
        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 の場合、アクションを実行せずに戻ります。

        次で指定:
        インターフェース StateHolderrestoreState 
        オーバーライド:
        クラス UIComponentBaserestoreState 
        パラメーター:
        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 でなければなりません

        次で指定:
        インターフェース StateHoldersaveState 
        オーバーライド:
        クラス UIComponentBasesaveState 
        パラメーター:
        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 により、モデルがリフレッシュされます。