User Tools

Site Tools


java:validatorinprimefaces

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
java:validatorinprimefaces [2012/08/26 00:07] rlunarojava:validatorinprimefaces [2013/10/17 10:30] rlunaro
Line 1: Line 1:
 +====== Validator example in primefaces ======
 +
 +Here is the example of a validator in primefaces. The example is based in the following use case: suppose we have a box calle "username" that has to be validated to see if the user entered new username exists previously in the database. 
 +
 +This example is run with primefaces in the presentation layer.
 +
 +<code xhtml>
 +        <p:inputText id="txtUsername" 
 +                    value="#{profileForm.username}"
 +                    required="true"
 +                    requiredMessage="#{msg.get('fieldIsRequired')}"
 +                    validator="#{profileForm.isUsernameValid}"/>
 +        <p:message for="txtUsername"/>
 +
 +</code>
 +
 +The ''message'' tag wil hold the messages related with the validation errors. You can also use a <p:growl> tag for this. 
 +
 +The backing bean has to have a method called ''isUsernameValid'' to properly validate the username. Here is an example: 
 +
 +<code java>
 +
 +import javax.faces.component.UIComponent;
 +import javax.faces.context.FacesContext;
 +import javax.faces.validator.ValidatorException;
 +
 +
 + /**
 + * Validates if the new username is available or not 
 + */
 + public void isUsernameValid(FacesContext ctx, UIComponent component, Object value) 
 + throws ValidatorException
 + {
 + String newUsername = value.toString();
 +
 + // if the username hasn't changed, is valid
 + if( newUsername.equals( initialUsername ) )
 + return;
 +
 + // if the username has changed, but it is 
 + // available in the database, is correct
 + if( !usersController.userExists(newUsername) )
 + {
 + // if it contains an space in the username, 
 + // throw exception
 + if( newUsername.contains( " " ) )
 + {
 + fma.addErrorMessage( "usernameIncorrectFormat" );
 + throw new ValidatorException( fma.getLastMessage() );
 + } // username.contains
 + }
 + else
 + {
 + // if exists in the database, throw exception
 + fma.addErrorMessage( "usernameAlreadyExists" );
 + throw new ValidatorException( fma.getLastMessage() );
 + }
 +
 + } // isUsernameValid
 +
 +</code>
 +
 +
 +The ''fma'' object is a helper object that has a method to create a new faces message out of the resources of the application, instead of using a constant literal which will have problems for translating into various languages. 
 +
 +~~DISQUS~~
  
java/validatorinprimefaces.txt · Last modified: 2022/12/02 22:02 by 127.0.0.1