パッケージ jakarta.faces.component

クラス UIForm

実装されたすべてのインターフェース:
NamingContainerPartialStateHolderStateHolderTransientStateHolderUniqueIdVendorComponentSystemEventListenerFacesListenerSystemEventListenerHolderEventListenerSE
既知の直属サブクラス
HtmlForm

public class UIForm extends UIComponentBase implements NamingContainer, UniqueIdVendor

UIForm は、ユーザーに提示される入力フォームを表す UIComponent であり、その子コンポーネントは(とりわけ)フォームの送信時に含まれる入力フィールドを表します。

デフォルトでは、rendererType プロパティを "jakarta.faces.Form" に設定する必要があります。この値は、setRendererType() メソッドを呼び出すことで変更できます。

  • フィールドの詳細

  • コンストラクターの詳細

    • UIForm

      public UIForm()

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

  • メソッドの詳細

    • getFamily

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

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

      次で指定:
      クラス UIComponentgetFamily 
      戻り値:
      コンポーネントファミリ(null 以外)。
    • isSubmitted

      public boolean isSubmitted()

      submitted プロパティの現在の値を返します。デフォルト値は false です。詳細については、setSubmitted(boolean) を参照してください。

      このプロパティは、UIComponent.getTransientStateHelper() を使用して一時的なプロパティとして保持する必要があります。

      戻り値:
      フォームが送信された場合は true、それ以外の場合は false
    • setSubmitted

      public void setSubmitted(boolean submitted)

      (ページ内の他の形ではなく) この UIForm インスタンスがこのリクエスト処理ライフサイクル中に提出発生している場合、このメソッドは、この UIForm インスタンスの UIComponent.decode(jakarta.faces.context.FacesContext) 時に、引数として true で、呼び出されなければなりません。この UIForm インスタンスで送信が発生していない場合は、この UIForm インスタンスの UIComponent.decode(jakarta.faces.context.FacesContext) 中に、false を引数としてこのメソッドを呼び出す必要があります。

      UIForm の送信されたプロパティの値は、その状態の一部として保存してはなりません。

      このプロパティは、UIComponent.getTransientStateHelper() を使用して一時的なプロパティとして保持する必要があります。

      パラメーター:
      submitted - 送信されたフラグの新しい値。
    • isPrependId

      public boolean isPrependId()
      先頭に ID が付いています。
      戻り値:
      ある場合は true、それ以外の場合は false
    • setPrependId

      public void setPrependId(boolean prependId)
      ID を先頭に追加するかどうかを設定します。
      パラメーター:
      prependId - ある場合は true、そうでない場合は false
    • processDecodes

      public void processDecodes(FacesContext context)

      UIComponent.processDecodes(jakarta.faces.context.FacesContext) をオーバーライドして、フォームがその子より先にデコードされるようにします。これは、submitted プロパティを正しく設定するために必要です。

      オーバーライド:
      クラス UIComponentBaseprocessDecodes 
      パラメーター:
      context - FacesContext(処理中のリクエスト)
      例外:
      NullPointerExceptionSE - context が null の場合
    • processValidators

      public void processValidators(FacesContext context)

      UIComponent.processValidators(jakarta.faces.context.FacesContext) をオーバーライドして、この UIForm インスタンスの子が isSubmitted() が true を返す場合にのみ処理されるようにします。

      オーバーライド:
      クラス UIComponentBaseprocessValidators 
      パラメーター:
      context - FacesContext(処理中のリクエスト)
      例外:
      NullPointerExceptionSE - context が null の場合
      関連事項:
    • processUpdates

      public void processUpdates(FacesContext context)

      UIComponent.processUpdates(jakarta.faces.context.FacesContext) をオーバーライドして、この UIForm インスタンスの子が isSubmitted() が true を返す場合にのみ処理されるようにします。

      オーバーライド:
      クラス UIComponentBaseprocessUpdates 
      パラメーター:
      context - FacesContext(処理中のリクエスト)
      例外:
      NullPointerExceptionSE - context が null の場合
    • createUniqueId

      public StringSE createUniqueId(FacesContext context, StringSE seed)

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

      prependId プロパティの値が false の場合、このメソッドは次の祖先 UniqueIdVendor で createUniqueId を呼び出す必要があります。

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

      public StringSE getContainerClientId(FacesContext context)

      UIComponent.getContainerClientId(jakarta.faces.context.FacesContext) をオーバーライドして、このフォームの isPrependId() プロパティの値に応じて、ユーザーがこのフォームを無効にして、clientId をその子孫の clientIds の前に付加できないようにします。

      オーバーライド:
      クラス UIComponentgetContainerClientId 
      パラメーター:
      context - Faces コンテキスト。
      戻り値:
      コンテナーのクライアント ID。
    • visitTree

      public boolean visitTree(VisitContext context, VisitCallback callback)
      クラスからコピーされた説明: UIComponent

      ツリー内のこのノードからツリー訪問を実行します。

      UIComponent.visitTree() の実装は VisitCallback を直接呼び出さず、代わりに VisitContext.invokeVisitCallback(jakarta.faces.component.UIComponent, jakarta.faces.component.visit.VisitCallback) を呼び出してコールバックを呼び出します。これにより、VisitContext 実装は、たとえばコンポーネントのサブセットに対して  VisitCallback を呼び出すだけで、最適化されたツリートラバーサルを提供できます。

      UIComponent.visitTree() 実装は、訪問を実行する前に UIComponent.pushComponentToEL() を呼び出し、訪問後に UIComponent.popComponentFromEL() を呼び出す必要があります。

      オーバーライド:
      クラス UIComponentvisitTree 
      パラメーター:
      context - この訪問の VisitContext 
      callback - 訪問したノードごとに visit メソッドが呼び出される VisitCallback インスタンス
      戻り値:
      コンポーネントの実装は、true を返し、ツリーの訪問が完了したことを示す場合があります(訪問する必要のあるすべてのコンポーネントが訪問されたなど)。これにより、ツリーへのアクセスが短絡され、アクセスされるコンポーネントがなくなります。
      関連事項:
    • invokeOnComponent

      public boolean invokeOnComponent(FacesContext context, StringSE clientId, ContextCallback callback) throws FacesException
      クラスからコピーされた説明: UIComponentBase

      ビュー階層のこのコンポーネントから開始して、引数 clientId と等しい clientId を持つコンポーネントを検索し、見つかった場合は、引数 callbackContextCallback.invokeContextCallback(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent) メソッドを呼び出し、現在の FacesContext と見つかったコンポーネントを引数として渡します。このメソッドは UIComponent.findComponent(java.lang.String) に似ていますが、ビューのルートから検索するための主要な UINamingContainer.getSeparatorChar(jakarta.faces.context.FacesContext) 構文をサポートしていません。

      デフォルトの実装では、最初に this.getClientId() が引数 clientId と等しいかどうかをチェックします。その場合は、最初に UIComponent.pushComponentToEL(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent) を呼び出し、に引数コールバックで ContextCallback.invokeContextCallback(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent) メソッドを呼び出して、FacesContext 引数を渡し、これをコンポーネント引数として渡します。次に UIComponent.popComponentFromEL(jakarta.faces.context.FacesContext) を呼び出します。コールバックによって Exception がスローされた場合は、FacesException でラップして、再度スローします。それ以外の場合は、true を返します。

      それ以外の場合は、UIComponent.getFacetsAndChildren() によって返される各コンポーネントについて、このメソッドに引数を順番に渡して invokeOnComponent() を呼び出します。invokeOnComponent() が初めて true を返したときは、残りの Iterator のトラバースを中止し、true を返します。

      ContextCallback.invokeContextCallback(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent) を呼び出す場合、このメソッドの実装は、コールバックに渡されたコンポーネントの状態が、引数 clientId で見つかった状態に関するビュー階層内のコンポーネントの位置を正しく反映することを保証する必要があります。例: UIData などの反復コンポーネントは、正しい行に基づく適切な子コンポーネントを見つける前に、引数 clientId を正しく反映するように行インデックスを設定する必要があります。コールバックが戻るとき、通常または Exception をスローすることにより、このメソッドの実装は、ビューの状態をコールバックを呼び出す前の状態に復元する必要があります。

      UIComponent.getFacetsAndChildren() のどの要素も invokeOnComponent() から true を返さなかった場合は、false を返します。

      clientId でコンポーネントを検索する簡単な使用例。

       
          private UIComponent found = null;
      
          private void doFind(FacesContext context, String clientId) {
            context.getViewRoot().invokeOnComponent(context, clientId,
                new ContextCallback() {
                   public void invokeContextCallback(FacesContext context,
                                                 UIComponent component) {
                     found = component;
                   }
                });
          }
       
       
      オーバーライド:
      クラス UIComponentBaseinvokeOnComponent 
      パラメーター:
      context - 現在のリクエストの FacesContext
      clientId - 引数コールバックに渡されるコンポーネントのクライアント識別子。
      callback - Callback インターフェースの実装。
      戻り値:
      true 指定された clientId を持つコンポーネントが見つかった場合、そのコンポーネントを引数として渡してコールバックメソッドが正常に呼び出され、例外はスローされませんでした。指定された clientId のコンポーネントが見つからない場合、false を返します。
      例外:
      FacesException - 引数 Callback が例外をスローすると、FacesException にラップされて再スローされます。
      関連事項: