miercuri, 25 februarie 2015

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


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

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

<h:form id="formId">           
 <h:panelGrid style="background-color: green;">               
  <h:inputText id="nameId" value="#{playersBean.name}" validator="myValidator"/>
 </h:panelGrid>
 <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 direct parent of type HtmlPanelGrid
 Components.validateHasDirectParent(uic, HtmlPanelGrid.class);
     
 // validate if the given component has a direct parent of type UIForm
 Components.validateHasDirectParent(uic, UIForm.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 direct parent of type UIForm. So, you will get an exception like below:

Niciun comentariu:

Trimiteți un comentariu