When the pageDef's skipValidation property is set to true, all the entity validations on the ADF Model would be bypassed. With this property set to true, entity validations would be fired only during the commit operation. Attribute Validations wouldnt get affected with this property.
Phases with different skipValidation Values:
When the page gets loaded:
1->jsfRestoreView
2->initContext
3->prepareModel
4->jsfApplyRequestValues
5->jsfRenderResponse
6->prepareRender
When thepage is submitted with skipValidation=false
1->jsfRestoreView
2->initContext
3->prepareModel
4->jsfApplyRequestValues
5->jsfProcessValidations
6->jsfUpdateModelValues(AttributeLevelValidations)
7->validateModelUpdates(EntityLevel Validations)
8->Invoke Application
9->metadataCommit
10->jsfRenderResponse
11->prepareRender
With skipValidation=true:
1->jsfRestoreView
2->initContext
3->prepareModel
4->jsfApplyRequestValues
5->jsfProcessValidations
6->jsfUpdateModelValues(AttributeLevelValidations)
7->Invoke Application
8->metadataCommit
9->jsfRenderResponse
10->prepareRender
With skipValidations=custom:
1->jsfRestoreView
2->initContext
3->prepareModel
4->jsfApplyRequestValues
5->jsfProcessValidations
6->jsfUpdateModelValues(AttributeLevelValidations)
7->validateModelUpdates(invokes
oracle.binding.BindingContainerValidator.validteBindingContainer())
8->Invoke Application
9->metadataCommit
10->jsfRenderResponse
11->prepareRender
Override validateBindingContainer() method and invoke AM's mthod to validate a VOImpl
Note:
We shouldnt call BindingContainer.Validate() in the custom Validator's code as this it would again call BindingContainerValidater.validateBindingContainer()
When skipValidations=skipdataControls:
Skips transaction Level Validations and only validates the records that are modified through the iterators in the current Binding Container
If same entity is spread across different tabs using different data Controls, commit on one DC shouldnt trigger the validations on other DCs
skipValidations=validateCurrentRows:
Validates only those rows which are modified in the current Request. By default(without this value) all the rows that are modified would be validated.
No comments:
Post a Comment