f:validator |
|
The Validator tag registers a named Validator instance on the component
associated with the enclosing tag. The JavaServer Faces framework includes three
standard validators (see the validateDoubleRange, validateLength, and
validateLongRange tags) but the Validator interface can be implemented by
classes that provide custom validation for your application. This tag accepts
one value matching the validator ID you assigned to your validator class in your
Faces configuration file. The body content of this tag must be empty.
JSF Example
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head />
<body>
<h:form>
<h:outputLabel value="Enter your email address: " for="emailAddress" />
<h:inputText label="Email address" id="emailAddress" required="true"
value="#{customerController.customer.emailAddress}">
<f:validator validatorId="emailAddressValidator" />
</h:inputText>
<h:commandButton value="Submit" />
<h:message for="emailAddress" errorStyle="color:red; display:block" />
</h:form>
</body>
</html>
This example was formatted by JSFToolbox for Dreamweaver.
Java Code
package com.mycompany.validate;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
/**
* Simple email validator to demonstrate custom validation.
*
*/
@FacesValidator(value = "emailAddressValidator")
public class EmailAddressValidator implements Validator {
@Override
public void validate(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
String email = String.valueOf(value);
boolean valid = true;
if (value == null) {
valid = false;
} else if (!email.contains("@")) {
valid = false;
} else if (!email.contains(".")) {
valid = false;
} else if (email.contains(" ")) {
valid = false;
}
if (!valid) {
FacesMessage message = new FacesMessage(
FacesMessage.SEVERITY_ERROR, "Invalid email address",
"The email address you entered is not valid.");
throw new ValidatorException(message);
}
}
}
Rendered Output
|