クラス BeanValidator
- java.lang.ObjectSE
-
- jakarta.faces.validator.BeanValidator
- 実装済みのインターフェース一覧:
PartialStateHolder、StateHolder、Validator、EventListenerSE
public class BeanValidator extends ObjectSE implements Validator, PartialStateHolder
Bean プロパティの検証を Bean 検証 API に委譲するバリデーター。
- 導入:
- 2.0
フィールド概要
フィールド 修飾子と型 フィールド 説明 static StringSEDISABLE_DEFAULT_BEAN_VALIDATOR_PARAM_NAMEこのパラメーターが定義されていて、その値のString表現でtoLowerCase().equals(“true”)を呼び出すとtrueが返される場合、ランタイムは、シンボリック定数VALIDATOR_IDの値に等しい validator-id を持つバリデーターをデフォルトのバリデーターのリストに自動的に追加してはなりません。static StringSEEMPTY_VALIDATION_GROUPS_PATTERN検証グループの空のリストを識別する正規表現パターン。static StringSEENABLE_VALIDATE_WHOLE_BEAN_PARAM_NAMEこのパラメーターが設定されていて、その値の文字列表現で toLowerCase().equals("true" )を呼び出すと、trueが返され、validate(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent, java.lang.Object)で指定された<validateWholeBean />に関連する追加のアクションが実行されます。static StringSEMESSAGE_ID制約の失敗が見つかった場合に作成されるFacesMessageのメッセージ ID。static StringSEVALIDATION_GROUPS_DELIMITER完全修飾グループ名のリストを文字列として区切るために使用される区切り文字。static StringSEVALIDATOR_FACTORY_KEYValidator インスタンスを取得するために Jakarta Faces によって使用されるオブジェクトを保持する Jakarta Servlet コンテキスト属性の名前。static StringSEVALIDATOR_IDJakarta Server Face 仕様で定義されている、このバリデーターの標準バリデーター ID。
コンストラクター概要
コンストラクター コンストラクター 説明 BeanValidator()
方法の概要
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 voidclearInitialState()PartialStateHolder を非デルタ追跡状態にリセットします。StringSEgetValidationGroups()制約をチェックするときに ValidationAPI に渡された検証グループを返します。booleaninitialStateMarked()デルタ状態の変更が追跡されている場合はtrueを返し、それ以外の場合はfalseを返します。booleanisTransient()true の場合、このインターフェースを実装するオブジェクトは、状態の保存または復元に参加してはなりません。voidmarkInitialState()ランタイムは、コンポーネントが初期状態であることを示すために、適切な時間にビュー内のこのインターフェースの各インスタンスでPartialStateHolder.markInitialState()メソッドが呼び出されることを確認する必要があります。voidrestoreState(FacesContext context, ObjectSE state)state オブジェクトのエントリから状態を復元するために必要な処理を実行します。ObjectSEsaveState(FacesContext context)インスタンスの状態をSerializableオブジェクトとして取得します。voidsetTransient(boolean transientValue)このインターフェースを実装するオブジェクトが状態の保存または復元に参加する必要があるかどうかを示します。voidsetValidationGroups(StringSE validationGroups)このバリデーターによってチェックされる検証をフィルタリングするために使用される検証グループのコンマ区切りのリスト。voidvalidate(FacesContext context, UIComponent component, ObjectSE value)Bean 検証制約に従って値が有効であることを確認します。
フィールドの詳細
VALIDATOR_ID
public static final StringSE VALIDATOR_ID
Jakarta Server Face 仕様で定義されている、このバリデーターの標準バリデーター ID。
- 関連事項:
- 定数フィールド値
MESSAGE_ID
public static final StringSE MESSAGE_ID
制約の失敗が見つかった場合に作成される
FacesMessageのメッセージ ID。このメッセージのメッセージ形式の文字列には、オプションで次のプレースホルダーを含めることができます。{0}は、Bean 検証からの補間メッセージに置き換えられました。{1}は、値がこのメッセージを生成した入力コンポーネントのラベルであるStringに置き換えられました。
デフォルトの実装で提供されるメッセージ形式の文字列は、プレースホルダー {0} である必要があります。これにより、メッセージ処理が Bean 検証に完全に委譲されます。開発者は、このメッセージ形式の文字列をオーバーライドして、他の Jakarta Server Face バリデーターメッセージに準拠させることができます。(つまり、コンポーネントラベルを含めること)
- 関連事項:
- 定数フィールド値
VALIDATOR_FACTORY_KEY
public static final StringSE VALIDATOR_FACTORY_KEY
Validator インスタンスを取得するために Jakarta Faces によって使用されるオブジェクトを保持する Jakarta Servlet コンテキスト属性の名前。Jakarta Servlet コンテキスト属性が欠落しているか、NULL 値が含まれている場合、Jakarta Server Faces はこの Jakarta Servlet コンテキスト属性を自由に使用して、このバリデーターによってブートストラップされた ValidatorFactory を保管できます。
- 関連事項:
- 定数フィールド値
VALIDATION_GROUPS_DELIMITER
public static final StringSE VALIDATION_GROUPS_DELIMITER
完全修飾グループ名のリストを文字列として区切るために使用される区切り文字。
- 関連事項:
- 定数フィールド値
EMPTY_VALIDATION_GROUPS_PATTERN
public static final StringSE EMPTY_VALIDATION_GROUPS_PATTERN
検証グループの空のリストを識別する正規表現パターン。
- 関連事項:
- 定数フィールド値
DISABLE_DEFAULT_BEAN_VALIDATOR_PARAM_NAME
public static final StringSE DISABLE_DEFAULT_BEAN_VALIDATOR_PARAM_NAME
このパラメーターが定義されていて、その値の
String表現でtoLowerCase().equals(“true”)を呼び出すとtrueが返される場合、ランタイムは、シンボリック定数VALIDATOR_IDの値に等しい validator-id を持つバリデーターをデフォルトのバリデーターのリストに自動的に追加してはなりません。このパラメーターをtrueに設定すると、アプリケーションのすべてのビューのすべての入力コンポーネントへの Bean 検証の自動インストールが無効になりますが、手動インストールは引き続き可能です。- 関連事項:
- 定数フィールド値
ENABLE_VALIDATE_WHOLE_BEAN_PARAM_NAME
public static final StringSE ENABLE_VALIDATE_WHOLE_BEAN_PARAM_NAME
このパラメーターが設定されていて、その値の文字列表現で toLowerCase().equals("true" )を呼び出すと、
trueが返され、validate(jakarta.faces.context.FacesContext, jakarta.faces.component.UIComponent, java.lang.Object)で指定された<validateWholeBean />に関連する追加のアクションが実行されます。- 導入:
- 2.3
- 関連事項:
- 定数フィールド値
メソッドの詳細
setValidationGroups
public void setValidationGroups(StringSE validationGroups)
この検証によってチェックされる検証をフィルタリングするために使用される検証グループのコンマ区切りリスト。validationGroupsArray 属性が省略されているか空の場合、検証グループは ブランチデフォルトから継承されます。ブランチデフォルトがない場合は、
Defaultグループが使用されます。- パラメーター:
validationGroups- 検証グループのコンマ区切りリスト (スペースとコンマのみが null として扱われる文字列)
getValidationGroups
public StringSE getValidationGroups()
制約をチェックするときに検証 API に渡される検証グループを返します。validationGroupsArray 属性が省略されているか空の場合、検証グループは ブランチデフォルトから継承されます。ブランチデフォルトがない場合は、
Defaultグループが使用されます。- 戻り値:
validatinGroups属性の値。
validate
public void validate(FacesContext context, UIComponent component, ObjectSE value)
Bean 検証制約に従って値が有効であることを確認します。
Validation.buildDefaultValidatorFactory()を呼び出して、ValidatorFactoryインスタンスを取得します。validationGroupsArray を、このバリデーターのタグハンドラーによってコンポーネントに設定されたバリデーターグループを表す
Class[]とします。最初の検索コンポーネントは、検証グループ値の検索を終了します。そのような値が見つからない場合は、検証グループの値としてDefaultのクラス名を使用します。valueExpression は、引数コンポーネントで
UIComponent.getValueExpression(java.lang.String)を呼び出して、リテラル文字列 "value" (引用符なし)を引数として渡したときの戻り値とします。このアプリケーションが Jakarta Expression Language のある環境で実行されている場合は、valueExpression からValueReferenceを取得し、valueBaseClase はValueReference.getBase()を呼び出して返された値、valueProperty はValueReference.getProperty()を呼び出して返された値とします。Jakarta Expression Language の以前のバージョンが存在する場合は、適切な方法を使用して valueExpression をインスペクションし、valueBaseClass と valueProperty の値を導出します。ValueReferenceを取得できない場合は、何もせずに戻ってください。ValueReference.getBase()がnullを返す場合は、何もせずに戻ります。ValidatorFactoryからValidatorContextを取得します。ValidatorFactory.getMessageInterpolator()から返されたMessageInterpolatorを、UIViewRoot.getLocale()から返されたLocaleを活用するもので装飾し、ValidatorContext.messageInterpolator(jakarta.validation.MessageInterpolator)を使用してValidatorContextに保存します。validatorContextからValidatorインスタンスを取得します。jakarta.validation.Validatorからjakarta.validation.BeanDescriptorを取得します。BeanDescriptorのhasConstraints()が false を返す場合は、何もせずに戻ります。それ以外の場合は続行します。Validator.validateValue(java.lang.Class<T>, java.lang.String, java.lang.Object, java.lang.Class<?>...)を呼び出し、valueBaseClass、valueProperty、値引数、validatorGroupsArray を引数として渡します。返された
Set<ConstraintViolation> が空でない場合は、Setの各要素について、FacesMessageを作成します。ここで、要約と詳細はConstraintViolation.getMessage()の呼び出しからの戻り値です。そのようなすべてのFacesMessageインスタンスをCollectionにキャプチャーし、ValidatorException(java.util.Collection)に渡します。ENABLE_VALIDATE_WHOLE_BEAN_PARAM_NAMEアプリケーションパラメーターが有効で、このValidatorインスタンスにDefaultグループ以外の、またはDefaultグループに加えて検証グループがある場合は、このフィールドが検証に失敗したことを記録して、ツリーの後半にある<f:validateWholeBean />コンポーネントがクラスレベルの検証をスキップできるようにします。この特定のフィールドがプロパティである Bean。ENABLE_VALIDATE_WHOLE_BEAN_PARAM_NAMEが設定されているかどうかに関係なく、新しい例外をスローします。返された
Setが空の場合、ENABLE_VALIDATE_WHOLE_BEAN_PARAM_NAMEアプリケーションパラメーターが有効であり、このValidatorインスタンスにはDefaultグループ以外の、またはDefaultグループに加えて検証グループがあります。このフィールドが検証に合格したことを記録して、ツリーの後半にある<f:validateWholeBean />コンポーネントが検証できるようにします。この特定のフィールドがプロパティである Bean のクラスレベルの検証を許可します。- 次で指定:
- インターフェース
Validatorのvalidate - パラメーター:
context- 処理中のリクエストの FacesContextcomponent- 正当性をチェックしている UIComponentvalue- 検証する値- 例外:
ValidatorException- 検証が失敗した場合
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 - パラメーター:
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 - パラメーター:
context- Faces コンテキスト。state- 状態。
markInitialState
public void markInitialState()
インターフェースからコピーされた説明:PartialStateHolderランタイムは、コンポーネントが初期状態であることを示すために、適切な時間にビュー内のこのインターフェースの各インスタンスで
PartialStateHolder.markInitialState()メソッドが呼び出されることを確認する必要があります。インターフェースの実装者は、markInitialState()が呼び出されてからPartialStateHolder.clearInitialState()が呼び出されるまでPartialStateHolder.initialStateMarked()がtrueを返すことを確認する必要があります。その後、initialStateMarked()はfalseを返す必要があります。また、インスタンスがinitialStateMarked()からtrueを返す間、実装はStateHolder.saveState(jakarta.faces.context.FacesContext)の実装で変更された状態のみを返す必要があります。- 次で指定:
- インターフェース
PartialStateHolderのmarkInitialState
initialStateMarked
public boolean initialStateMarked()
インターフェースからコピーされた説明:PartialStateHolderデルタ状態の変更が追跡されている場合は
trueを返し、それ以外の場合はfalseを返します。- 次で指定:
- インターフェース
PartialStateHolderのinitialStateMarked - 戻り値:
- 初期状態がマークされている場合は
true、それ以外の場合はfalse。
clearInitialState
public void clearInitialState()
インターフェースからコピーされた説明:PartialStateHolderPartialStateHolder を非デルタ追跡状態にリセットします。
- 次で指定:
- インターフェース
PartialStateHolderのclearInitialState
isTransient
public boolean isTransient()
インターフェースからコピーされた説明:StateHoldertrue の場合、このインターフェースを実装するオブジェクトは、状態の保存または復元に参加してはなりません。
- 次で指定:
- インターフェース
StateHolderのisTransient - 戻り値:
- 一時的な場合は
true、それ以外の場合はfalse。
setTransient
public void setTransient(boolean transientValue)
インターフェースからコピーされた説明:StateHolderこのインターフェースを実装するオブジェクトが状態の保存または復元に参加する必要があるかどうかを示します。
- 次で指定:
- インターフェース
StateHolderのsetTransient - パラメーター:
transientValue- このオブジェクトが 状態の保存または復元に参加しない場合はブール値trueを渡し、それ以外の場合はfalseを渡します。