JSF Validate Bean using javax.validation Annotations

This tutorial shows how to validate a JSF Form using javax.validation annotations on your managed bean. According to the JSR 303: Bean Validation Specification we can Annotate Classes, Methods or properties using the javax.validation annotations. In order to use these annotations we need to add the following maven dependencies: the java validation API and a Reference Implementation (RI).

<!-- java validation API and RI-->

JSF Managed Bean

  • @Size: The annotated element size must be between the specified boundaries (included).
  • @Pattern: The annotated String must match the following regular expression.

If you need other validations you can lookup all the annotations here.

package com.memorynotfound.jsf;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.validation.constraints.*;

public class UserBean {

    @Size(min = 3, message = "Name should at least be 3 characters long")
    private String name;

    @Pattern(regexp = "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$", message = "This is not a valid email")
    private String email;

    public String getName() {
        return name;

    public void setName(String name) {
        this.name = name;

    public String getEmail() {
        return email;

    public void setEmail(String email) {
        this.email = email;

JSF Validate Length Input Field Page

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
    <h2>JSF validate bean example</h2>
        <h:panelGrid columns="3">

            <h:outputLabel value="Name:" for="name"/>
            <h:inputText id="name" value="#{userBean.name}"/>
            <h:message for="name" style="color:red" />

            <h:outputLabel value="Email:" for="email"/>
            <h:inputText id="email" value="#{userBean.email}"/>
            <h:message for="email" style="color:red" />

        <h:commandButton value="submit" action="result"/>


URL: http://localhost:8080/jsf-validate-bean/

JSF Validate Bean

jsf validate bean example



You may also like...