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 StringSE | ALWAYS_PERFORM_VALIDATION_WHEN_REQUIRED_IS_TRUE このパラメーターが設定されており、その値のストリング表現で toLowerCase().equals("true" )を呼び出すと true が返される場合、受信リクエストにこのコンポーネントに対応する値がない場合でも検証を実行する必要があります。 |
static StringSE | COMPONENT_FAMILY このコンポーネントの標準コンポーネントファミリ。 |
static StringSE | COMPONENT_TYPE このコンポーネントの標準コンポーネント型。 |
static StringSE | CONVERSION_MESSAGE_ID 変換エラーが発生し、ページの作成者も ConverterException もメッセージを提供しない場合に作成される FacesMessage のメッセージ識別子。 |
static StringSE | EMPTY_STRING_AS_NULL_PARAM_NAME 空の文字列をどのように解釈する必要があるかを示すコンテキストパラメーターの名前。 |
static StringSE | REQUIRED_MESSAGE_ID 必要なチェックが失敗した場合に作成される FacesMessage のメッセージ識別子。 |
static StringSE | UPDATE_MESSAGE_ID モデル更新エラーが発生し、スローされた例外にメッセージがない場合に作成される FacesMessage のメッセージ識別子。 |
static StringSE | VALIDATE_EMPTY_FIELDS_PARAM_NAME 検証に関して空の値を処理する方法を示すコンテキストパラメーターの名前。 |
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
修飾子と型 | メソッドと説明 |
---|---|
void | addValidator(Validator validator) |
void | addValueChangeListener(ValueChangeListener listener) 新しい ValueChangeListener を、ValueChangeEvent の発生時に通知を受けることに関心のあるリスナーのセットに追加します。 |
void | clearInitialState()
|
protected boolean | compareValues(ObjectSE previous, ObjectSE value) 新しい値が前の値と異なる場合は、 true を返します。 |
void | decode(FacesContext context) 指定された FacesContext に含まれるリクエストからこの UIComponent の新しい状態をデコードし、必要に応じてこの状態を保存します。 |
protected ObjectSE | getConvertedValue(FacesContext context, ObjectSE newSubmittedValue) 必要に応じて、送信された値を適切なデータ型の「ローカル値」に変換します。 |
StringSE | getConverterMessage() このインスタンスで setConverterMessage(java.lang.String) への呼び出しがあった場合は、メッセージを返します。 |
StringSE | getFamily() このコンポーネントが属するコンポーネントファミリの識別子を返します。 |
StringSE | getRequiredMessage() このインスタンスで setRequiredMessage(java.lang.String) への呼び出しがあった場合は、メッセージを返します。 |
ObjectSE | getSubmittedValue() この UIInput コンポーネントの submittedValue 値を返します。 |
MethodBinding | getValidator() 使用すべきではありません。 代わりに getValidators() を使用する必要があります。 |
StringSE | getValidatorMessage() このインスタンスで setValidatorMessage(java.lang.String) への呼び出しがあった場合は、メッセージを返します。 |
Validator[] | getValidators() |
ObjectSE | getValue() ローカル値がある場合はそれを返し、それ以外の場合は |
MethodBinding | getValueChangeListener() このインスタンスに対して EditableValueHolder.setValueChangeListener(jakarta.faces.el.MethodBinding) が以前に呼び出されていなかった場合、このメソッドは null を返す必要があります。 |
ValueChangeListener[] | getValueChangeListeners() この UIInput インスタンスに登録されている ValueChangeListener のセットを返します。 |
static boolean | isEmpty(ObjectSE value) 空の値を示す値です。 |
boolean | isImmediate() このコンポーネントの「即時」状態を返します。 |
boolean | isLocalValueSet() このコンポーネントの「ローカル値セット」の状態を返します。 |
boolean | isRequired() このコンポーネントの「必須フィールド」の状態を返します。 |
boolean | isValid() このコンポーネントのローカル値が有効かどうかを示すフラグを返します(変換エラーは発生していません)。 |
void | markInitialState() PartialStateHolder.markInitialState() が呼び出されたときに UIOutput で実行されるアクションに加えて、インストールされている Validator のいずれかが PartialStateHolders であるかどうかを確認し、そうである場合は、必要に応じて PartialStateHolder.markInitialState() を呼び出します。 |
void | processDecodes(FacesContext context) スーパークラスによって提供されるものに加えて、特殊なデコード動作。 |
void | processUpdates(FacesContext context) |
void | processValidators(FacesContext context) immediate プロパティが(デフォルトで)false の場合 UIComponentBase から継承された標準 processValidators 動作に加えて、validate() を呼び出します。後でコンポーネントが無効になった場合は、FacesContext.renderResponse() を呼び出します。 |
void | removeValidator(Validator validator) |
void | removeValueChangeListener(ValueChangeListener listener) ValueChangeEvent の発生時に通知を受けることに関心のあるリスナーのセットから既存の ValueChangeListener (存在する場合)を削除します。 |
void | resetValue() このコンポーネントの値を初期化されていない状態にリセットする簡易メソッド。 |
void | restoreState(FacesContext context, ObjectSE state) state オブジェクトのエントリから状態を復元するために必要な処理を実行します。 |
ObjectSE | saveState(FacesContext context) インスタンスの状態を Serializable オブジェクトとして取得します。 |
void | setConverterMessage(StringSE message) このメソッドに提供されたリテラル引数を使用して、"converterMessage" に設定された ValueExpression をオーバーライドします。 |
void | setImmediate(boolean immediate) このコンポーネントの「即時」状態を設定します。 |
void | setLocalValueSet(boolean localValueSet) このコンポーネントの「ローカル値セット」の状態を設定します。 |
void | setRequired(boolean required) このコンポーネントの「必須フィールド」の状態を設定します。 |
void | setRequiredMessage(StringSE message) このメソッドに提供されたリテラル引数を使用して、"requiredMessage" に設定された ValueExpression をオーバーライドします。 |
void | setSubmittedValue(ObjectSE submittedValue) この UIInput コンポーネントの submittedValue 値を設定します。 |
void | setValid(boolean valid) このコンポーネントのローカル値が有効である(変換エラーが発生していない)かどうかを示すフラグを設定します。 |
void | setValidator(MethodBinding validatorBinding) 使用すべきではありません。 代わりに addValidator(jakarta.faces.validator.Validator) を使用し、MethodExpressionValidator のインスタンスを作成して引数 Validator を取得します。 |
void | setValidatorMessage(StringSE message) このメソッドに提供されたリテラル引数を使用して、"validatorMessage" に設定された ValueExpression をオーバーライドします。 |
void | setValue(ObjectSE value) この UIComponent の値を設定します(ある場合)。 |
void | setValueChangeListener(MethodBinding valueChangeListener) 使用すべきではありません。 代わりに addValueChangeListener(jakarta.faces.event.ValueChangeListener) を使用し、MethodExpressionValueChangeListener のインスタンスを作成して引数 ValueChangeListener を取得します。 |
void | updateModel(FacesContext context) 次のアルゴリズムを実行して、必要に応じて、この UIInput に関連付けられているモデルデータを更新します。 |
void | validate(FacesContext context) 次のアルゴリズムを実行して、この UIInput のローカル値を検証します。 |
protected void | validateValue(FacesContext context, ObjectSE newValue) 以下のアルゴリズムに従って「有効な」プロパティを設定します。 |
getConverter, getLocalValue, setConverter
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, getValueBinding, invokeOnComponent, isRendered, isTransient, processRestoreState, processSaveState, queueEvent, removeFacesListener, restoreAttachedState, saveAttachedState, setId, setParent, setRendered, setRendererType, setTransient, setValueBinding, 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, setValueExpression, visitTree
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
getConverter, getLocalValue, setConverter
public static final StringSE COMPONENT_FAMILY
このコンポーネントの標準コンポーネントファミリ。
public static final StringSE CONVERSION_MESSAGE_ID
変換エラーが発生し、ページの作成者も ConverterException
もメッセージを提供しない場合に作成される FacesMessage
のメッセージ識別子。
public static final StringSE REQUIRED_MESSAGE_ID
必要なチェックが失敗した場合に作成される FacesMessage
のメッセージ識別子。
public static final StringSE UPDATE_MESSAGE_ID
モデル更新エラーが発生し、スローされた例外にメッセージがない場合に作成される FacesMessage
のメッセージ識別子。
public static final StringSE VALIDATE_EMPTY_FIELDS_PARAM_NAME
検証に関して空の値を処理する方法を示すコンテキストパラメーターの名前。許容値とそれらの解釈方法の仕様については、validateValue(jakarta.faces.context.FacesContext, java.lang.Object)
を参照してください。
public static final StringSE EMPTY_STRING_AS_NULL_PARAM_NAME
空の文字列をどのように解釈する必要があるかを示すコンテキストパラメーターの名前。
public static final StringSE ALWAYS_PERFORM_VALIDATION_WHEN_REQUIRED_IS_TRUE
このパラメーターが設定されていて、その値のストリング表現で toLowerCase().equals("true" )を呼び出すと true が返される場合、受信リクエストにこのコンポーネントに対応する値がない場合でも検証を実行する必要があります。validate(jakarta.faces.context.FacesContext)
を参照してください。
public UIInput()
デフォルトのプロパティ値で新しい UIInput
インスタンスを作成します。
public StringSE getFamily()
UIComponent
このコンポーネントが属するコンポーネントファミリの識別子を返します。この識別子は、rendererType
プロパティの値と組み合わせて、このコンポーネントインスタンスに適切な Renderer
を選択するために使用できます。このメソッドは null
を返すべきではないことに注意してください
public ObjectSE getSubmittedValue()
この UIInput
コンポーネントの submittedValue 値を返します。このメソッドは、このコンポーネントの decode()
および validate()
メソッド、または対応する Renderer
でのみ使用する必要があります。
EditableValueHolder
の getSubmittedValue
public void setSubmittedValue(ObjectSE submittedValue)
この UIInput
コンポーネントの submittedValue 値を設定します。このメソッドは、このコンポーネントの decode()
および validate()
メソッド、または対応する Renderer
でのみ使用する必要があります。
EditableValueHolder
の setSubmittedValue
submittedValue
- 新しく送信された値 public ObjectSE getValue()
ローカル値がある場合はそれを返し、それ以外の場合は super.getVaue()
の呼び出し結果を返します。
ValueHolder
の getValue
UIOutput
の getValue
public void setValue(ObjectSE value)
ValueHolder
この UIComponent
の値を設定します(ある場合)。
ValueHolder
の setValue
UIOutput
の setValue
value
- 新しいローカル値 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
public boolean isLocalValueSet()
setValue()
を呼び出すと、このプロパティは true
に自動的にリセットされます。EditableValueHolder
の isLocalValueSet
true
、それ以外の場合は false
。public void setLocalValueSet(boolean localValueSet)
EditableValueHolder
の setLocalValueSet
localValueSet
- 「ローカル値セット」ブール値。public boolean isRequired()
このコンポーネントの「必須フィールド」の状態を返します。
EditableValueHolder
の isRequired
true
、それ以外の場合は false
。public StringSE getRequiredMessage()
このインスタンスで setRequiredMessage(java.lang.String)
が呼び出された場合は、メッセージを返します。それ以外の場合は、キー "requiredMessage" を渡して UIComponent.getValueExpression(java.lang.String)
を呼び出し、式の結果を取得して返します。getValue()
の呼び出し中にスローされた ELException
はすべて、FacesException
にラップして再スローする必要があります。
public void setRequiredMessage(StringSE message)
このメソッドに提供されたリテラル引数を使用して、"requiredMessage" に設定された ValueExpression
を上書きします。getRequiredMessage()
への後続の呼び出しでは、この値が返されます。
message
- ユーザーが値を指定しておらず、値が必要な場合に表示されるリテラルメッセージ値。public StringSE getConverterMessage()
このインスタンスで setConverterMessage(java.lang.String)
が呼び出された場合は、メッセージを返します。それ以外の場合は、キー "converterMessage" を渡して UIComponent.getValueExpression(java.lang.String)
を呼び出し、式の結果を取得して返します。getValue()
の呼び出し中にスローされた ELException
はすべて、FacesException
にラップして再スローする必要があります。
public void setConverterMessage(StringSE message)
このメソッドに提供されたリテラル引数を使用して、"converterMessage" に設定された ValueExpression
を上書きします。getConverterMessage()
への後続の呼び出しでは、この値が返されます。
message
- イベント変換で表示されるリテラルメッセージ値は失敗します。public StringSE getValidatorMessage()
このインスタンスで setValidatorMessage(java.lang.String)
が呼び出された場合は、メッセージを返します。それ以外の場合は、キー "validatorMessage" を渡して UIComponent.getValueExpression(java.lang.String)
を呼び出し、式の結果を取得して返します。getValue()
の呼び出し中にスローされた ELException
はすべて、FacesException
にラップして再スローする必要があります。
public void setValidatorMessage(StringSE message)
このメソッドに提供されたリテラル引数を使用して、"validatorMessage" に設定された ValueExpression
を上書きします。getValidatorMessage()
への後続の呼び出しでは、この値が返されます。
message
- イベント検証で表示されるリテラルメッセージ値は失敗します。public boolean isValid()
EditableValueHolder
このコンポーネントのローカル値が有効かどうかを示すフラグを返します(変換エラーは発生していません)。
EditableValueHolder
の isValid
true
、それ以外の場合は false
。public void setValid(boolean valid)
EditableValueHolder
このコンポーネントのローカル値が有効である(変換エラーが発生していない)かどうかを示すフラグを設定します。
EditableValueHolder
の setValid
valid
- 新しい有効なフラグ public void setRequired(boolean required)
このコンポーネントの「必須フィールド」の状態を設定します。
EditableValueHolder
の setRequired
required
- 新しい「必須フィールド」状態 public boolean isImmediate()
EditableValueHolder
このコンポーネントの「即時」状態を返します。
EditableValueHolder
の isImmediate
true
、それ以外の場合は false
。public void setImmediate(boolean immediate)
EditableValueHolder
このコンポーネントの「即時」状態を設定します。true に設定すると、コンポーネントの値は、リクエスト値の適用フェーズですぐに変換および検証され、ValueChangeEvent
もそのフェーズで配信されます。このプロパティのデフォルト値は false
である必要があります。
EditableValueHolder
の setImmediate
immediate
- 新しい「即時」状態 @DeprecatedSE public MethodBinding getValidator()
getValidators()
を使用してください。 このコンポーネントの現在の値を検証するために、リクエスト処理ライフサイクルのプロセス検証フェーズ中に呼び出されるメソッドを指す MethodBinding
を返します。
EditableValueHolder
の getValidator
@DeprecatedSE public void setValidator(MethodBinding validatorBinding)
addValidator(jakarta.faces.validator.Validator)
を使用し、MethodExpressionValidator
のインスタンスを作成して引数 Validator
を取得します。 このコンポーネントの現在の値を検証するために、リクエスト処理ライフサイクルのプロセス検証フェーズ中に呼び出されるメソッドを指す MethodBinding
を設定します。
このような式で参照されるメソッドはすべて、戻り値の型が void
のパブリックであり、型 FacesContext
、UIComponent
、Object
のパラメーターを受け入れる必要があります。
EditableValueHolder
の setValidator
validatorBinding
- 新しい MethodBinding
インスタンス public MethodBinding getValueChangeListener()
EditableValueHolder
このインスタンスに対して EditableValueHolder.setValueChangeListener(jakarta.faces.el.MethodBinding)
が以前に呼び出されていなかった場合、このメソッドは null
を返す必要があります。呼び出された場合、このメソッドは EditableValueHolder.setValueChangeListener(jakarta.faces.el.MethodBinding)
に渡された正確な MethodBinding
インスタンスを返す必要があります。
EditableValueHolder
の getValueChangeListener
@DeprecatedSE public void setValueChangeListener(MethodBinding valueChangeListener)
addValueChangeListener(jakarta.faces.event.ValueChangeListener)
を使用し、MethodExpressionValueChangeListener
のインスタンスを作成して引数 ValueChangeListener
を取得します。 引数 valueChangeMethod
を ValueChangeListener
の実装にラップし、EditableValueHolder.getValueChangeListeners()
メソッドをサポートする内部データ構造に格納します。setValueChangeListener
への以前の呼び出しによって格納されたインスタンスを上書きすることに注意してください。
この引数メソッドは、プロセス検証フェーズまたはリクエスト値の適用フェーズで呼び出されます(immediate
プロパティの値によって異なります)。
このような式で参照されるメソッドはすべて、戻り値の型が void
のパブリックであり、型 ValueChangeEvent
のパラメーターを受け入れる必要があります。
EditableValueHolder
の setValueChangeListener
valueChangeListener
- 値変更リスナー。public void markInitialState()
PartialStateHolder.markInitialState()
が呼び出されたときに UIOutput
で実行されるアクションに加えて、インストールされている Validator
のいずれかが PartialStateHolders であるかどうかを確認し、そうである場合は、必要に応じて PartialStateHolder.markInitialState()
を呼び出します。
PartialStateHolder
の markInitialState
UIOutput
の markInitialState
public void clearInitialState()
UIComponentBase
PartialStateHolder
を実装するこのインスタンス上の添付オブジェクトごとに、添付オブジェクトで PartialStateHolder.clearInitialState()
を呼び出します。
PartialStateHolder
の clearInitialState
UIOutput
の clearInitialState
public void processDecodes(FacesContext context)
スーパークラスによって提供されるものに加えて、特殊なデコード動作。UIComponentBase
から継承された標準の processDecodes
動作に加えて、immediate
プロパティが true の場合は validate()
を呼び出します。その後、コンポーネントが無効になった場合、RuntimeException
がスローされた場合は、FacesContext.renderResponse()
を呼び出します。
UIComponentBase
の processDecodes
context
- FacesContext
(処理中のリクエスト)NullPointerExceptionSE
- context
が null
の場合 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
public void processUpdates(FacesContext context)
UIComponentBase
から継承された標準の processUpdates
動作に加えて、updateModel()
を呼び出します。その後、コンポーネントが無効な場合は、FacesContext.renderResponse()
を呼び出します。更新処理中に RuntimeException
がスローされた場合は、FacesContext.renderResponse()
を呼び出して、例外を再スローします。
UIComponentBase
の processUpdates
context
- FacesContext
(処理中のリクエスト)NullPointerExceptionSE
- context
が null
の場合 public void decode(FacesContext context)
UIComponent
指定された FacesContext
に含まれるリクエストからこの UIComponent
の新しい状態をデコードし、必要に応じてこの状態を保存します。
デコード中、queueEvent()
を呼び出すことにより、(インタレストを登録したイベントリスナーによる)後の処理のためにイベントをキューに入れることができます。
UIComponentBase
の decode
context
- FacesContext
(処理中のリクエスト)NullPointerExceptionSE
- context
が null
の場合 public void updateModel(FacesContext context)
次のアルゴリズムを実行して、必要に応じて、この UIInput
に関連付けられているモデルデータを更新します。
valid
プロパティが false
の場合、それ以上のアクションは実行しないでください。localValueSet
プロパティが false
の場合、それ以上のアクションは実行しないでください。value
の ValueExpression
が存在しない場合は、それ以上のアクションを実行しません。ValueExpression
の setValue()
メソッドを呼び出して、ValueExpression
が指す値を更新します。setValue()
メソッドが正常に戻った場合:setValue()
メソッドが例外をスローした場合: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
に設定します。context
- FacesContext
(処理中のリクエスト)NullPointerExceptionSE
- context
が null
の場合 public void validate(FacesContext context)
次のアルゴリズムを実行して、この UIInput
のローカル値を検証します。
getSubmittedValue()
を使用して送信された値を取得します。これが null
を返し、ALWAYS_PERFORM_VALIDATION_WHEN_REQUIRED_IS_TRUE
context-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 の場合 protected ObjectSE getConvertedValue(FacesContext context, ObjectSE newSubmittedValue) throws ConverterException
必要に応じて、送信された値を適切なデータ型の「ローカル値」に変換します。これを行うには、次のアルゴリズムを使用します。
Renderer
が存在する場合は、getConvertedValue()
を呼び出して、送信された値を変換します。Renderer
が存在せず、送信された値が文字列である場合は、次のように Converter
を見つけます。Converter
インスタンスが見つかった場合は、その getAsObject()
メソッドを呼び出して変換を実行します。変換が失敗した場合、Converter
はこのメソッドでチェックされた例外として宣言された ConverterException
をスローするため、呼び出し元が処理する必要があります。このメソッドは、より具体的な動作のためにサブクラスによってオーバーライドできます。
context
- Faces コンテキスト。newSubmittedValue
- 新しく提出された値。ConverterException
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
- 新しい値。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
。public static boolean isEmpty(ObjectSE value)
空の値を示す値です。
値が null の場合、true を返します。値が文字列であり、それが空の文字列である場合は、true を返します。値が配列で、配列の長さが 0 の場合、true を返します。値がリストで、リストが空の場合、true を返します。値がコレクションであり、コレクションが空の場合、true を返します。値がマップで、マップが空の場合、true を返します。それ以外の場合はすべて false を返します。
value
- チェックする値。public void addValidator(Validator validator)
EditableValueHolder
の addValidator
validator
- 追加する Validator
NullPointerExceptionSE
- validator
が null の場合 public Validator[] getValidators()
EditableValueHolder
の getValidators
public void removeValidator(Validator validator)
EditableValueHolder
の removeValidator
validator
- 削除する Validator
public void addValueChangeListener(ValueChangeListener listener)
新しい ValueChangeListener
を、ValueChangeEvent
の発生時に通知を受けることに関心のあるリスナーのセットに追加します。
EditableValueHolder
の addValueChangeListener
listener
- 追加する ValueChangeListener
NullPointerExceptionSE
- listener
が null
の場合 public ValueChangeListener[] getValueChangeListeners()
この UIInput
インスタンスに登録されている ValueChangeListener
のセットを返します。登録済みのリスナーがない場合は、長さ 0 の配列が返されます。
EditableValueHolder
の getValueChangeListeners
public void removeValueChangeListener(ValueChangeListener listener)
ValueChangeEvent
の発生時に通知を受けることに関心のあるリスナーのセットから既存の ValueChangeListener
(存在する場合)を削除します。
EditableValueHolder
の removeValueChangeListener
listener
- 削除する ValueChangeListener
NullPointerExceptionSE
- listener
が null
の場合 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 コンテキスト。public void restoreState(FacesContext context, ObjectSE state)
StateHolder
state オブジェクトのエントリから状態を復元するために必要な処理を実行します。
このインターフェースを実装するクラスが、StateHolder も実装するインスタンスへの参照を持っている場合(イベントハンドラー、バリデーターなどを備えた UIComponent
など)、このメソッドはそれらすべてのインスタンスで StateHolder.restoreState(jakarta.faces.context.FacesContext, java.lang.Object)
メソッドも呼び出す必要があります。
state
引数が null
の場合、アクションを実行せずに戻ります。
StateHolder
の restoreState
UIOutput
の restoreState
context
- Faces コンテキスト。state
- 状態。Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.