クラス UIInput
- java.lang.ObjectSE
-
- jakarta.faces.component.UIComponent
-
- jakarta.faces.component.UIComponentBase
-
- jakarta.faces.component.UIOutput
-
- jakarta.faces.component.UIInput
- 実装されているすべてのインターフェース:
EditableValueHolder、PartialStateHolder、StateHolder、TransientStateHolder、ValueHolder、ComponentSystemEventListener、FacesListener、SystemEventListenerHolder、EventListenerSE
- 既知の直属サブクラス
HtmlInputFile、HtmlInputHidden、HtmlInputSecret、HtmlInputText、HtmlInputTextarea、UISelectBoolean、UISelectMany、UISelectOne、UIViewParameter
public class UIInput extends UIOutput implements EditableValueHolder
UIInput は
UIComponentであり、ユーザーに出力を表示するコンポーネント(UIOutputコンポーネントのように)と、デコードする必要がある後続のリクエストでリクエストパラメーターを処理するコンポーネントの両方を表します。ローカル値のデータ型、または値バインディング式(存在する場合)によって参照されるオブジェクトに制限はありません。ただし、個々のRendererは通常、表示方法がわかっているデータの型に制限を課します。リクエスト処理ライフサイクルのリクエスト値の適用フェーズ中に、このコンポーネントのデコードされた値は、通常は文字列である必要はありませんが、
setSubmittedValue()を使用して保存する必要がありますが、まだ変換されていません。コンポーネントが特定の値が送信されなかったことを示す場合は、何も実行しないか、送信された値をnullに設定できます。デフォルトでは、リクエスト処理ライフサイクルのプロセスバリデーターフェーズ中に、送信された値は型安全オブジェクトに変換され、検証が成功した場合、
setValue()を使用してローカル値として保存されます。ただし、immediateプロパティがtrueに設定されている場合、この処理は代わりにリクエスト値の適用フェーズの最後に行われます。リクエスト処理ライフサイクルのレスポンスのレンダリングフェーズ中に、出力の変換が
UIOutputの場合と同様に行われます。この
UIInputのvalidate()メソッドは、値の変更が実際に発生し、すべての検証が正常に渡されたことを検出すると、ValueChangeEventをキューに入れます。その後、broadcast()メソッドは、このイベントがすべての関係するリスナーに確実にブロードキャストされるようにします。このイベントは、デフォルトでプロセス検証プロセスで配信されますが、immediateプロパティがtrueに設定されている場合は、リクエスト値の適用中に代わりに配信できます。検証が失敗した場合、実装はFacesContext.validationFailed()を呼び出す必要があります。デフォルトでは、
rendererTypeプロパティを "Text" に設定する必要があります。この値は、setRendererType()メソッドを呼び出すことで変更できます。
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static StringSEALWAYS_PERFORM_VALIDATION_WHEN_REQUIRED_IS_TRUEこのパラメーターが設定されており、その値のストリング表現で toLowerCase().equals("true" )を呼び出すと true が返される場合、受信リクエストにこのコンポーネントに対応する値がない場合でも検証を実行する必要があります。static StringSECOMPONENT_FAMILYこのコンポーネントの標準コンポーネントファミリ。static StringSECOMPONENT_TYPEこのコンポーネントの標準コンポーネント型。static StringSECONVERSION_MESSAGE_ID変換エラーが発生し、ページの作成者もConverterExceptionもメッセージを提供しない場合に作成されるFacesMessageのメッセージ識別子。static StringSEEMPTY_STRING_AS_NULL_PARAM_NAME空の文字列をどのように解釈する必要があるかを示すコンテキストパラメーターの名前。static StringSEREQUIRED_MESSAGE_ID必要なチェックが失敗した場合に作成されるFacesMessageのメッセージ識別子。static StringSEUPDATE_MESSAGE_IDモデル更新エラーが発生し、スローされた例外にメッセージがない場合に作成されるFacesMessageのメッセージ識別子。static StringSEVALIDATE_EMPTY_FIELDS_PARAM_NAME検証に関して空の値を処理する方法を示すコンテキストパラメーターの名前。クラス jakarta.faces.component.UIComponent から継承されたフィールド
ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, FACETS_KEY, VIEW_LOCATION_KEY
方法の概要
すべてのメソッド 静的メソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 voidaddValidator(Validator validator)voidaddValueChangeListener(ValueChangeListener listener)新しいValueChangeListenerを、ValueChangeEventの発生時に通知を受けることに関心のあるリスナーのセットに追加します。voidclearInitialState()PartialStateHolderを実装するこのインスタンス上の添付オブジェクトごとに、添付オブジェクトでPartialStateHolder.clearInitialState()を呼び出します。protected booleancompareValues(ObjectSE previous, ObjectSE value)新しい値が前の値と異なる場合は、trueを返します。voiddecode(FacesContext context)指定されたFacesContextに含まれるリクエストからこのUIComponentの新しい状態をデコードし、必要に応じてこの状態を保存します。protected ObjectSEgetConvertedValue(FacesContext context, ObjectSE newSubmittedValue)必要に応じて、送信された値を適切なデータ型の「ローカル値」に変換します。StringSEgetConverterMessage()このインスタンスでsetConverterMessage(java.lang.String)への呼び出しがあった場合は、メッセージを返します。StringSEgetFamily()このコンポーネントが属するコンポーネントファミリの識別子を返します。StringSEgetRequiredMessage()このインスタンスでsetRequiredMessage(java.lang.String)への呼び出しがあった場合は、メッセージを返します。ObjectSEgetSubmittedValue()このUIInputコンポーネントの submittedValue 値を返します。StringSEgetValidatorMessage()このインスタンスでsetValidatorMessage(java.lang.String)への呼び出しがあった場合は、メッセージを返します。Validator[]getValidators()ObjectSEgetValue()ローカル値がある場合はそれを返し、それ以外の場合はsuper.getVaue()の呼び出し結果を返します。ValueChangeListener[]getValueChangeListeners()このUIInputインスタンスに登録されているValueChangeListenerのセットを返します。static booleanisEmpty(ObjectSE value)空の値を示す値です。booleanisImmediate()このコンポーネントの「即時」状態を返します。booleanisLocalValueSet()このコンポーネントの「ローカル値セット」の状態を返します。booleanisRequired()このコンポーネントの「必須フィールド」の状態を返します。booleanisValid()このコンポーネントのローカル値が有効かどうかを示すフラグを返します(変換エラーは発生していません)。voidmarkInitialState()PartialStateHolder.markInitialState()が呼び出されたときにUIOutputで実行されるアクションに加えて、インストールされているValidatorのいずれかが PartialStateHolders であるかどうかを確認し、そうである場合は、必要に応じてPartialStateHolder.markInitialState()を呼び出します。voidprocessDecodes(FacesContext context)スーパークラスによって提供されるものに加えて、特殊なデコード動作。voidprocessUpdates(FacesContext context)voidprocessValidators(FacesContext context)immediateプロパティが(デフォルトで)false の場合UIComponentBaseから継承された標準processValidators動作に加えて、validate()を呼び出します。後でコンポーネントが無効になった場合は、FacesContext.renderResponse()を呼び出します。voidremoveValidator(Validator validator)voidremoveValueChangeListener(ValueChangeListener listener)ValueChangeEventの発生時に通知を受けることに関心のあるリスナーのセットから既存のValueChangeListener(存在する場合)を削除します。voidresetValue()このコンポーネントの値を初期化されていない状態にリセットする簡易メソッド。voidrestoreState(FacesContext context, ObjectSE state)state オブジェクトのエントリから状態を復元するために必要な処理を実行します。ObjectSEsaveState(FacesContext context)インスタンスの状態をSerializableオブジェクトとして取得します。voidsetConverterMessage(StringSE message)このメソッドに提供されたリテラル引数を使用して、"converterMessage" に設定されたValueExpressionをオーバーライドします。voidsetImmediate(boolean immediate)このコンポーネントの「即時」状態を設定します。voidsetLocalValueSet(boolean localValueSet)このコンポーネントの「ローカル値セット」の状態を設定します。voidsetRequired(boolean required)このコンポーネントの「必須フィールド」の状態を設定します。voidsetRequiredMessage(StringSE message)このメソッドに提供されたリテラル引数を使用して、"requiredMessage" に設定されたValueExpressionをオーバーライドします。voidsetSubmittedValue(ObjectSE submittedValue)このUIInputコンポーネントの submittedValue 値を設定します。voidsetValid(boolean valid)このコンポーネントのローカル値が有効である(変換エラーが発生していない)かどうかを示すフラグを設定します。voidsetValidatorMessage(StringSE message)このメソッドに提供されたリテラル引数を使用して、"validatorMessage" に設定されたValueExpressionをオーバーライドします。voidsetValue(ObjectSE value)このUIComponentの値を設定します(ある場合)。voidupdateModel(FacesContext context)次のアルゴリズムを実行して、必要に応じて、このUIInputに関連付けられているモデルデータを更新します。voidvalidate(FacesContext context)次のアルゴリズムを実行して、このUIInputのローカル値を検証します。protected voidvalidateValue(FacesContext context, ObjectSE newValue)以下のアルゴリズムに従って「有効な」プロパティを設定します。クラス jakarta.faces.component.UIOutput から継承されたメソッド
getConverter, getLocalValue, setConverter
クラス jakarta.faces.component.UIComponentBase から継承されたメソッド
addClientBehavior, addFacesListener, broadcast, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientBehaviors, getClientId, getDefaultEventName, getEventNames, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getListenersForEventClass, getParent, getPassThroughAttributes, getRenderer, getRendererType, getRendersChildren, invokeOnComponent, isRendered, isTransient, processRestoreState, processSaveState, queueEvent, 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, setValueExpression, visitTree
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース jakarta.faces.component.ValueHolder から継承されたメソッド
getConverter, getLocalValue, setConverter
フィールドの詳細
COMPONENT_FAMILY
public static final StringSE COMPONENT_FAMILY
このコンポーネントの標準コンポーネントファミリ。
- 関連事項:
- 定数フィールド値
CONVERSION_MESSAGE_ID
public static final StringSE CONVERSION_MESSAGE_ID
変換エラーが発生し、ページの作成者も
ConverterExceptionもメッセージを提供しない場合に作成されるFacesMessageのメッセージ識別子。- 関連事項:
- 定数フィールド値
REQUIRED_MESSAGE_ID
public static final StringSE REQUIRED_MESSAGE_ID
必要なチェックが失敗した場合に作成される
FacesMessageのメッセージ識別子。- 関連事項:
- 定数フィールド値
UPDATE_MESSAGE_ID
public static final StringSE UPDATE_MESSAGE_ID
モデル更新エラーが発生し、スローされた例外にメッセージがない場合に作成される
FacesMessageのメッセージ識別子。- 関連事項:
- 定数フィールド値
VALIDATE_EMPTY_FIELDS_PARAM_NAME
public static final StringSE VALIDATE_EMPTY_FIELDS_PARAM_NAME
検証に関して空の値を処理する方法を示すコンテキストパラメーターの名前。許容値とそれらの解釈方法の仕様については、
validateValue(jakarta.faces.context.FacesContext, java.lang.Object)を参照してください。- 関連事項:
- 定数フィールド値
EMPTY_STRING_AS_NULL_PARAM_NAME
public static final StringSE EMPTY_STRING_AS_NULL_PARAM_NAME
空の文字列をどのように解釈する必要があるかを示すコンテキストパラメーターの名前。
- 関連事項:
- 定数フィールド値
ALWAYS_PERFORM_VALIDATION_WHEN_REQUIRED_IS_TRUE
public static final StringSE ALWAYS_PERFORM_VALIDATION_WHEN_REQUIRED_IS_TRUE
このパラメーターが設定されていて、その値のストリング表現で toLowerCase().equals("true" )を呼び出すと true が返される場合、受信リクエストにこのコンポーネントに対応する値がない場合でも検証を実行する必要があります。
validate(jakarta.faces.context.FacesContext)を参照してください。- 関連事項:
- 定数フィールド値
コンストラクターの詳細
UIInput
public UIInput()
デフォルトのプロパティ値で新しい
UIInputインスタンスを作成します。
メソッドの詳細
getFamily
public StringSE getFamily()
クラスからコピーされた説明:UIComponentこのコンポーネントが属するコンポーネントファミリの識別子を返します。この識別子は、
rendererTypeプロパティの値と組み合わせて、このコンポーネントインスタンスに適切なRendererを選択するために使用できます。このメソッドはnullを返すべきではないことに注意してください
getSubmittedValue
public ObjectSE getSubmittedValue()
この
UIInputコンポーネントの submittedValue 値を返します。このメソッドは、このコンポーネントのdecode()およびvalidate()メソッド、または対応するRendererでのみ使用する必要があります。- 次で指定:
- インターフェース
EditableValueHolderのgetSubmittedValue - 戻り値:
- 送信された値。
setSubmittedValue
public void setSubmittedValue(ObjectSE submittedValue)
この
UIInputコンポーネントの submittedValue 値を設定します。このメソッドは、このコンポーネントのdecode()およびvalidate()メソッド、または対応するRendererでのみ使用する必要があります。- 次で指定:
- インターフェース
EditableValueHolderのsetSubmittedValue - パラメーター:
submittedValue- 新しく送信された値
getValue
public ObjectSE getValue()
ローカル値がある場合はそれを返し、それ以外の場合は
super.getVaue()の呼び出し結果を返します。- 次で指定:
- インターフェース
ValueHolderのgetValue - オーバーライド:
- クラス
UIOutputのgetValue - 戻り値:
- 値。
- 導入:
- 2.2
setValue
public void setValue(ObjectSE value)
インターフェースからコピーされた説明:ValueHolderこの
UIComponentの値を設定します(ある場合)。- 次で指定:
- インターフェース
ValueHolderのsetValue - オーバーライド:
- クラス
UIOutputのsetValue - パラメーター:
value- 新しいローカル値
resetValue
public void resetValue()
このコンポーネントの値を初期化されていない状態にリセットする簡易メソッド。このメソッドは次のことを行います。
UIOutput.setValue(java.lang.Object)を呼び出します。nullを渡してsetSubmittedValue(java.lang.Object)を呼び出します。プロパティ
localValueSetの状態をクリアします。プロパティ
validの状態をクリアします。この呼び出しから戻ったときに、インスタンスに "value" プロパティの
ValueBindingが関連付けられている場合、このバインディングはUIOutput.getValue()が呼び出されたときに評価されます。それ以外の場合、getValue()からnullが返されます。- 次で指定:
- インターフェース
EditableValueHolderのresetValue - オーバーライド:
- クラス
UIOutputのresetValue
isLocalValueSet
public boolean isLocalValueSet()
このコンポーネントの「ローカル値セット」の状態を返します。setValue()を呼び出すと、このプロパティはtrueに自動的にリセットされます。- 次で指定:
- インターフェース
EditableValueHolderのisLocalValueSet - 戻り値:
- ローカル値が設定されている場合は
true、それ以外の場合はfalse。
setLocalValueSet
public void setLocalValueSet(boolean localValueSet)
このコンポーネントの「ローカル値セット」の状態を設定します。- 次で指定:
- インターフェース
EditableValueHolderのsetLocalValueSet - パラメーター:
localValueSet- 「ローカル値セット」ブール値。
isRequired
public boolean isRequired()
このコンポーネントの「必須フィールド」の状態を返します。
- 次で指定:
- インターフェース
EditableValueHolderのisRequired - 戻り値:
- 必要な場合は
true、それ以外の場合はfalse。
getRequiredMessage
public StringSE getRequiredMessage()
このインスタンスで
setRequiredMessage(java.lang.String)が呼び出された場合は、メッセージを返します。それ以外の場合は、キー "requiredMessage" を渡してUIComponent.getValueExpression(java.lang.String)を呼び出し、式の結果を取得して返します。getValue()の呼び出し中にスローされたELExceptionはすべて、FacesExceptionにラップして再スローする必要があります。- 戻り値:
- 必要なメッセージ。
setRequiredMessage
public void setRequiredMessage(StringSE message)
このメソッドに提供されたリテラル引数を使用して、"requiredMessage" に設定された
ValueExpressionを上書きします。getRequiredMessage()への後続の呼び出しでは、この値が返されます。- パラメーター:
message- ユーザーが値を指定しておらず、値が必要な場合に表示されるリテラルメッセージ値。
getConverterMessage
public StringSE getConverterMessage()
このインスタンスで
setConverterMessage(java.lang.String)が呼び出された場合は、メッセージを返します。それ以外の場合は、キー "converterMessage" を渡してUIComponent.getValueExpression(java.lang.String)を呼び出し、式の結果を取得して返します。getValue()の呼び出し中にスローされたELExceptionはすべて、FacesExceptionにラップして再スローする必要があります。- 戻り値:
- コンバーターメッセージ。
setConverterMessage
public void setConverterMessage(StringSE message)
このメソッドに提供されたリテラル引数を使用して、"converterMessage" に設定された
ValueExpressionを上書きします。getConverterMessage()への後続の呼び出しでは、この値が返されます。- パラメーター:
message- イベント変換で表示されるリテラルメッセージ値は失敗します。
getValidatorMessage
public StringSE getValidatorMessage()
このインスタンスで
setValidatorMessage(java.lang.String)が呼び出された場合は、メッセージを返します。それ以外の場合は、キー "validatorMessage" を渡してUIComponent.getValueExpression(java.lang.String)を呼び出し、式の結果を取得して返します。getValue()の呼び出し中にスローされたELExceptionはすべて、FacesExceptionにラップして再スローする必要があります。- 戻り値:
- バリデータメッセージ。
setValidatorMessage
public void setValidatorMessage(StringSE message)
このメソッドに提供されたリテラル引数を使用して、"validatorMessage" に設定された
ValueExpressionを上書きします。getValidatorMessage()への後続の呼び出しでは、この値が返されます。- パラメーター:
message- イベント検証で表示されるリテラルメッセージ値は失敗します。
isValid
public boolean isValid()
インターフェースからコピーされた説明:EditableValueHolderこのコンポーネントのローカル値が有効かどうかを示すフラグを返します(変換エラーは発生していません)。
- 次で指定:
- インターフェース
EditableValueHolderのisValid - 戻り値:
- 有効な場合は
true、それ以外の場合はfalse。
setValid
public void setValid(boolean valid)
インターフェースからコピーされた説明:EditableValueHolderこのコンポーネントのローカル値が有効である(変換エラーが発生していない)かどうかを示すフラグを設定します。
- 次で指定:
- インターフェース
EditableValueHolderのsetValid - パラメーター:
valid- 新しい有効なフラグ
setRequired
public void setRequired(boolean required)
このコンポーネントの「必須フィールド」の状態を設定します。
- 次で指定:
- インターフェース
EditableValueHolderのsetRequired - パラメーター:
required- 新しい「必須フィールド」状態
isImmediate
public boolean isImmediate()
インターフェースからコピーされた説明:EditableValueHolderこのコンポーネントの「即時」状態を返します。
- 次で指定:
- インターフェース
EditableValueHolderのisImmediate - 戻り値:
- が即時の場合は
true、それ以外の場合はfalse。
setImmediate
public void setImmediate(boolean immediate)
インターフェースからコピーされた説明:EditableValueHolderこのコンポーネントの「即時」状態を設定します。true に設定すると、コンポーネントの値は、リクエスト値の適用フェーズですぐに変換および検証され、
ValueChangeEventもそのフェーズで配信されます。このプロパティのデフォルト値はfalseである必要があります。- 次で指定:
- インターフェース
EditableValueHolderのsetImmediate - パラメーター:
immediate- 新しい「即時」状態
markInitialState
public void markInitialState()
PartialStateHolder.markInitialState()が呼び出されたときにUIOutputで実行されるアクションに加えて、インストールされているValidatorのいずれかが PartialStateHolders であるかどうかを確認し、そうである場合は、必要に応じてPartialStateHolder.markInitialState()を呼び出します。- 次で指定:
- インターフェース
PartialStateHolderのmarkInitialState - オーバーライド:
- クラス
UIOutputのmarkInitialState
clearInitialState
public void clearInitialState()
クラスからコピーされた説明:UIComponentBasePartialStateHolderを実装するこのインスタンス上の添付オブジェクトごとに、添付オブジェクトでPartialStateHolder.clearInitialState()を呼び出します。- 次で指定:
- インターフェース
PartialStateHolderのclearInitialState - オーバーライド:
- クラス
UIOutputのclearInitialState
processDecodes
public void processDecodes(FacesContext context)
スーパークラスによって提供されるものに加えて、特殊なデコード動作。
UIComponentBaseから継承された標準のprocessDecodes動作に加えて、immediateプロパティが true の場合はvalidate()を呼び出します。その後、コンポーネントが無効になった場合、RuntimeExceptionがスローされた場合は、FacesContext.renderResponse()を呼び出します。- オーバーライド:
- クラス
UIComponentBaseのprocessDecodes - パラメーター:
context-FacesContext(処理中のリクエスト)- 例外:
NullPointerExceptionSE-contextがnullの場合
processValidators
public void processValidators(FacesContext context)
immediateプロパティが(デフォルトで)false の場合UIComponentBaseから継承された標準processValidators動作に加えて、validate()を呼び出します。その後、コンポーネントが無効な場合は、FacesContext.renderResponse()を呼び出します。PostValidateEventが適切なタイミングで公開されるようにするには、このコンポーネントを最初に検証してから、コンポーネントの子とファセットを検証する必要があります。検証処理中にRuntimeExceptionがスローされた場合は、FacesContext.renderResponse()を呼び出して、例外を再スローします。- オーバーライド:
- クラス
UIComponentBaseのprocessValidators - パラメーター:
context-FacesContext(処理中のリクエスト)- 例外:
NullPointerExceptionSE-contextがnullの場合- 関連事項:
PreValidateEvent,PostValidateEvent
processUpdates
public void processUpdates(FacesContext context)
UIComponentBaseから継承された標準のprocessUpdates動作に加えて、updateModel()を呼び出します。その後、コンポーネントが無効な場合は、FacesContext.renderResponse()を呼び出します。更新処理中にRuntimeExceptionがスローされた場合は、FacesContext.renderResponse()を呼び出して、例外を再スローします。- オーバーライド:
- クラス
UIComponentBaseのprocessUpdates - パラメーター:
context-FacesContext(処理中のリクエスト)- 例外:
NullPointerExceptionSE-contextがnullの場合
decode
public void decode(FacesContext context)
クラスからコピーされた説明:UIComponent指定された
FacesContextに含まれるリクエストからこのUIComponentの新しい状態をデコードし、必要に応じてこの状態を保存します。デコード中、
queueEvent()を呼び出すことにより、(インタレストを登録したイベントリスナーによる)後の処理のためにイベントをキューに入れることができます。- オーバーライド:
- クラス
UIComponentBaseのdecode - パラメーター:
context-FacesContext(処理中のリクエスト)- 例外:
NullPointerExceptionSE-contextがnullの場合
updateModel
public void updateModel(FacesContext context)
次のアルゴリズムを実行して、必要に応じて、この
UIInputに関連付けられているモデルデータを更新します。- このコンポーネントの
validプロパティがfalseの場合、それ以上のアクションは実行しないでください。 - このコンポーネントの
localValueSetプロパティがfalseの場合、それ以上のアクションは実行しないでください。 valueのValueExpressionが存在しない場合は、それ以上のアクションを実行しません。ValueExpressionのsetValue()メソッドを呼び出して、ValueExpressionが指す値を更新します。setValue()メソッドが正常に戻った場合:setValue()メソッドが例外をスローした場合:- エラーメッセージをキューに入れます。ID
UPDATE_MESSAGE_IDでFacesMessageを作成します。UpdateModelExceptionを作成し、FacesMessageとキャッチされた例外をコンストラクターに渡します。ExceptionQueuedEventContextを作成し、FacesContext、UpdateModelException、このコンポーネントインスタンス、PhaseId.UPDATE_MODEL_VALUESをコンストラクターに渡します。FacesContext.getExceptionHandler()を呼び出してから、ExceptionHandler.processEvent(jakarta.faces.event.SystemEvent)を呼び出し、ExceptionQueuedEventContextを渡します。 - この
UIInputのvalidプロパティをfalseに設定します。
- エラーメッセージをキューに入れます。ID
- パラメーター:
context-FacesContext(処理中のリクエスト)- 例外:
NullPointerExceptionSE-contextがnullの場合
- このコンポーネントの
validate
public void validate(FacesContext context)
次のアルゴリズムを実行して、この
UIInputのローカル値を検証します。getSubmittedValue()を使用して送信された値を取得します。これがnullを返し、ALWAYS_PERFORM_VALIDATION_WHEN_REQUIRED_IS_TRUEcontext-param の値が true(大文字と小文字を区別しない)の場合は、"required" プロパティの値を調べます。"required" の値が true の場合は、以下のように続行します。"required" の値が false の場合、または required 属性が設定されていない場合は、それ以上処理せずに終了します。context-param が設定されていないか、false に設定されている(大文字と小文字を区別しない)場合は、それ以上処理せずに終了します。(これは、このコンポーネントに値が送信されなかったことを示します。)jakarta.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULLコンテキストパラメーター値がtrue(大文字と小文字を区別しない)であり、getSubmittedValue()が長さゼロのString呼び出しを返す場合、引数としてsetSubmittedValue(java.lang.Object)nullを渡し、現在送信される値としてnullを使用して処理を続行します。getConvertedValue(jakarta.faces.context.FacesContext, java.lang.Object)を呼び出して、送信された値を適切なデータ型の「ローカル値」に変換します。- 変換に失敗した場合 :
FacesContextでaddMessage()メソッドを呼び出して、適切なエラーメッセージをキューに入れます。- このコンポーネントの
validプロパティをfalseに設定します
validateValue(jakarta.faces.context.FacesContext, java.lang.Object)を呼び出して、プロパティを検証します。- このコンポーネントの
validプロパティがまだtrueである場合は、コンポーネントの以前の値を取得し(getValue()を使用)、setValue()を使用して新しいローカル値を格納し、nullを引数として渡すsetSubmittedValue(java.lang.Object)を呼び出して、送信された値を null にリセットします。compareValues(java.lang.Object, java.lang.Object)の呼び出しによって決定されたように、ローカル値がこのコンポーネントの以前の値と異なる場合は、ValueChangeEventを起動して、関心のあるすべてのリスナーにブロードキャストします。
コンポーネントに埋め込まれたロジックを使用して検証を実行する
UIInputを実装するアプリケーションコンポーネントは、独自の正当性チェックを実行してから、super.validate()メソッドを呼び出して上記の標準処理を実行する必要があります。- パラメーター:
context- 現在のリクエストのFacesContext- 例外:
NullPointerExceptionSE-contextが null の場合
getConvertedValue
protected ObjectSE getConvertedValue(FacesContext context, ObjectSE newSubmittedValue) throws ConverterException
必要に応じて、送信された値を適切なデータ型の「ローカル値」に変換します。これを行うには、次のアルゴリズムを使用します。
Rendererが存在する場合は、getConvertedValue()を呼び出して、送信された値を変換します。Rendererが存在せず、送信された値が文字列である場合は、次のようにConverterを見つけます。Converterインスタンスが見つかった場合は、そのgetAsObject()メソッドを呼び出して変換を実行します。変換が失敗した場合、Converterはこのメソッドでチェックされた例外として宣言されたConverterExceptionをスローするため、呼び出し元が処理する必要があります。- それ以外の場合は、変換せずに送信された値を使用します
このメソッドは、より具体的な動作のためにサブクラスによってオーバーライドできます。
- パラメーター:
context- Faces コンテキスト。newSubmittedValue- 新しく提出された値。- 戻り値:
- 変換された値。
- 例外:
ConverterException
validateValue
protected void validateValue(FacesContext context, ObjectSE newValue)
以下のアルゴリズムに従って「有効な」プロパティを設定します。
このコンポーネントの
validプロパティがまだtrueであり、requiredプロパティもtrueである場合は、ローカル値が空でないことを確認してください(「空」はnullまたは長さゼロの文字列として定義されます)。ローカル値が空の場合:現在のリクエストの
FacesContextインスタンスでaddMessage()メソッドを呼び出して、適切なエラーメッセージをキューに入れます。getRequiredMessage()が非 nullを返す場合は、その値をFacesContextにエンキューされているFacesMessageのsummaryおよびdetailとして使用します。それ以外の場合は、REQUIRED_MESSAGE_IDのメッセージを使用します。- このコンポーネントの
validプロパティをfalseに設定します。 ValidatorException.getFacesMessages()を呼び出すと非 nullが返される場合は、各メッセージをFacesContextに追加する必要があります。それ以外の場合は、ValidatorException.getFacesMessage()から返される単一のメッセージを追加する必要があります。
それ以外の場合、このコンポーネントの
validプロパティがまだtrueである場合は、次のアクションを実行して、このコンポーネントの検証を続行するかどうかを決定します。値が空でない場合は、検証を続行する必要があります。
値が空であるが、システムが空のフィールドを検証するように指示されている場合、検証を続行する必要があります。実装は、
ExternalContextから初期化パラメーターMapを取得し、シンボリック定数VALIDATE_EMPTY_FIELDS_PARAM_NAMEの値によって指定されたキーの値をインスペクションする必要があります。そのキーに値がない場合は、同じキーを使用して、ExternalContextからアプリケーションマップを調べます。値がnullまたは文字列 "auto" (引用符なし)と等しい場合は、適切なアクションを実行して、ランタイム環境に Bean 検証が存在するかどうかを判別します。そうでない場合、検証は続行されません。その場合、検証を続行する必要があります。値が "true" (引用符なし)と等しい(大文字と小文字を区別しない)場合は、検証を続行する必要があります。それ以外の場合、検証は続行されません。
上記の決定により検証を続行する必要があることが示された場合は、この
UIInputに登録されている各Validatorのvalidate()メソッドを呼び出してから、validatorBindingプロパティ(存在する場合)が指すメソッドを呼び出します。これらのバリデーターまたはメソッドのいずれかがValidatorExceptionをスローした場合は、例外をキャッチし、そのメッセージ(存在する場合)をFacesContextに追加し、このコンポーネントのvalidプロパティを false に設定します。
- パラメーター:
context- Faces コンテキスト。newValue- 新しい値。
compareValues
protected boolean compareValues(ObjectSE previous, ObjectSE value)
新しい値が前の値と異なる場合は、
trueを返します。最初に、前の引数のequalsメソッドに値を渡して、2 つの値を比較します。そのメソッドがtrueを返す場合は、trueを返します。そのメソッドがfalseを返し、両方の引数がjava.lang.Comparableを実装している場合は、前の引数のcompareToメソッドに値を渡して 2 つの値を比較します。このメソッドが0を返す場合はtrueを返し、それ以外の場合はfalseを返します。- パラメーター:
previous- このコンポーネントの古い値 (もしあれば)value- このコンポーネントの新しい値 (もしあれば)- 戻り値:
- 新しい値が前の値と異なる場合は
true、それ以外の場合はfalse。
isEmpty
public static boolean isEmpty(ObjectSE value)
空の値を示す値です。
値が null の場合、true を返します。値が文字列であり、それが空の文字列である場合は、true を返します。値が配列で、配列の長さが 0 の場合、true を返します。値がリストで、リストが空の場合、true を返します。値がコレクションであり、コレクションが空の場合、true を返します。値がマップで、マップが空の場合、true を返します。それ以外の場合はすべて false を返します。
- パラメーター:
value- チェックする値。- 戻り値:
- そうである場合は true、そうでない場合は false。
addValidator
public void addValidator(Validator validator)
- 次で指定:
- インターフェース
EditableValueHolderのaddValidator - パラメーター:
validator- 追加するValidator- 例外:
NullPointerExceptionSE-validatorが null の場合
getValidators
public Validator[] getValidators()
- 次で指定:
- インターフェース
EditableValueHolderのgetValidators - 戻り値:
- バリデーター、または長さゼロの配列。
removeValidator
public void removeValidator(Validator validator)
- 次で指定:
- インターフェース
EditableValueHolderのremoveValidator - パラメーター:
validator- 削除するValidator
addValueChangeListener
public void addValueChangeListener(ValueChangeListener listener)
新しい
ValueChangeListenerを、ValueChangeEventの発生時に通知を受けることに関心のあるリスナーのセットに追加します。- 次で指定:
- インターフェース
EditableValueHolderのaddValueChangeListener - パラメーター:
listener- 追加するValueChangeListener- 例外:
NullPointerExceptionSE-listenerがnullの場合
getValueChangeListeners
public ValueChangeListener[] getValueChangeListeners()
この
UIInputインスタンスに登録されているValueChangeListenerのセットを返します。登録済みのリスナーがない場合は、長さ 0 の配列が返されます。- 次で指定:
- インターフェース
EditableValueHolderのgetValueChangeListeners - 戻り値:
- 値変更リスナー、または長さがゼロの配列。
removeValueChangeListener
public void removeValueChangeListener(ValueChangeListener listener)
ValueChangeEventの発生時に通知を受けることに関心のあるリスナーのセットから既存のValueChangeListener(存在する場合)を削除します。- 次で指定:
- インターフェース
EditableValueHolderのremoveValueChangeListener - パラメーター:
listener- 削除するValueChangeListener- 例外:
NullPointerExceptionSE-listenerがnullの場合
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 - オーバーライド:
- クラス
UIOutputのsaveState - パラメーター:
context- Faces コンテキスト。- 戻り値:
- 保存された状態。
restoreState
public void restoreState(FacesContext context, ObjectSE state)
インターフェースからコピーされた説明:StateHolderstate オブジェクトのエントリから状態を復元するために必要な処理を実行します。
このインターフェースを実装するクラスが、StateHolder も実装するインスタンスへの参照を持っている場合(イベントハンドラー、バリデーターなどを備えた
UIComponentなど)、このメソッドはそれらすべてのインスタンスでStateHolder.restoreState(jakarta.faces.context.FacesContext, java.lang.Object)メソッドも呼び出す必要があります。state引数がnullの場合、アクションを実行せずに戻ります。- 次で指定:
- インターフェース
StateHolderのrestoreState - オーバーライド:
- クラス
UIOutputのrestoreState - パラメーター:
context- Faces コンテキスト。state- 状態。