Www.manorrock.com / Online / Blogs Login
The RegexValidator | Main | Writing your own Validator

JSF

The RequiredValidator

9/8/2012 9:02 AM

Say you want to make sure that a value is required.

 <html xmlns:h="http://java.sun.com/jsf/html"  xmlns:f="http://java.sun.com/jsf/core">
  <h:inputText value="#{user.firstName}">
   <f:validateRequired/>
  </h:inputText>
 </html>

If you want to disable the RequiredValidator on a page you can mark the validator as disabled as follows:

 <html xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
  <h:inputText value="#{user.firstName}">
   <f:validateRequired disabled="true" />
  </h:inputText>
 </html>

If you keep an instance of a RequiredValidator around in your managed bean you can also use binding to bind that particular instance of the RequiredValidator to the tag on the page like so:

 <html xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
  <h:inputText value="#{user.firstName}">
   <f:validateRequired binding="#{settings.requiredValidator}" />
  </h:inputText>
 </html>

And a managed bean that has a method similar to the one below:

 public RequiredValidator getRequiredValidator() {
  return requiredValidator;
 }

If you specifically want to attach the validator to a specific component then you can use the 'for' attribute to target it. Note this attribute is really helpful when using composite components. Eg.

 <html xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
  <h:inputText id="myinput" value="#{donation.amount}">
   <f:validateRequired binding="#{settings.firstNameValidator}" for="myinput"/>
  </h:inputText>
 </html>

Comments

Add a comment
Up

Copyright © 2002-2013 Manorrock.com. All Rights Reserved.