marți, 24 februarie 2015

[OmniFaces utilities (2.0)] Validate if the given component has a parent of the given parent type


[OmniFaces utilities] The validateHasParent() method validates if the given component has a parent of the given parent type.

Method:
As you can see, this OmniFaces utilities uses another OmniFaces utilities, named getClosestParent(). The later was presented in "[OmniFaces utilities (2.0)]Get from the given component the closest parent of the given parent type".

Usage:

You can use this method in a custom validator. Per example, let's have this JSF snippet:

<h:form id="formId">
 <h:inputText id="nameId" value="#{playersBean.name}" validator="myValidator"/>
 <h:commandButton id="btnId" value="Save" action="#{playersBean.save()}"/>
</h:form>

Now, in MyValidator we can perform the following validations:
...
@Override
public void validate(FacesContext fc, UIComponent uic, Object o) throws ValidatorException {
        
 // validate if the given component has a parent of type UIForm
 Components.validateHasParent(uic, UIForm.class);
       
 // validate if the given component has a parent of type UICommand
 Components.validateHasParent(uic, UICommand.class);
}
...

The first check will be a success, while the validation will fail at second check, since the uic component (aka UIInput) doesn't have a parent of type UICommand. So, you will get an exception like below:

Niciun comentariu:

Trimiteți un comentariu