JSF – Validations – Java

Publicado: 19 de janeiro de 2015 em Java

As validações permitem que você adicione uma validação de modo que quando um usuário editar ou inserir dados em um campo e enviar o formulário, os dados serão validados contra todas as regras e condições estabelecidas. Se a validação falhar, o aplicativo exibe uma mensagem de erro. Você pode utilizar as tags do JSF Core (f) para trabalhar com validações dos elementos do JSF HTML (h), executando assim validações de vários tipos sobre os dados alimentados pelos usuários de sua aplicação.

Validações JFS (f) Core

  1. f: ValidateLength – Valida comprimento de uma string.
  2. f: validateLongRange – Valida gama de valor numérico.
  3. f: validateDoubleRange – Valida gama de valor flutuante.
  4. f: validateRegex – Validar componente JSF com uma determinada expressão regular.

Ainda é possível que você crie suas próprias validações customizadas implementando sua classe com a interface javax.faces.validator.

Validação: ValidateDoubleRange

Validando Campos de Entrada

1- Crie uma aplicação web dinâmica JSF. Vamos utilizar as propriedades para customizar as mensagens que vamos emitir para a interface do usuário, abra as propriedades de sua aplicação e as modifique de acordo com  a figura abaixo:

JSF - Properties - Mensagens

JSF – Properties – Mensagens

3 – Utilize os códigos abaixo para criar os arquivos de sua aplicação. Criaremos um Managed Bean com um detalhe para o campo salário, ao invés de utilizarmos um tipo double primitivo vamos utilizar a classe Double para armazenar o valor no qual será manipulado pela UI da página utilizando elementos do JSF Core para a validação:

JSF - validateDoubleRange

JSF – validateDoubleRange

4 – Na tag de validação de alcance, definimos um valor máximo e um valor mínimo para a entrada do usuário, se o valor inserido não satisfazer as regras aplicadas então a mensagem definida será exibida.

JSF - Validation

JSF – Validation

Exemplo:

Neste exemplo definimos dois tipos de validação para o campo salário, no qual primeiro o definimos como campo obrigatório e por fim definimos um valor mínimo e um valor máximo para o salário. Este é um exemplo fictício de como deve funcionar as validações na UI, em um ambiente profissional este tipo de validação para salário não deve ser feita diretamente na interface de usuário e sim na camada de negocio de sua aplicação.

Java

Participante – Managed Bean

package org.desenvolvimento.aberto;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

// Define decoradores
@ManagedBean(name = "Participante")
@RequestScoped
public class Participante {

	// Define atributos privados
	private long id;
	private String nome;
	private String sobrenome;
	private String cargo;
	private Double salario;

	// Metodos Getter e Setter
	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getSobrenome() {
		return sobrenome;
	}

	public void setSobrenome(String sobrenome) {
		this.sobrenome = sobrenome;
	}

	public String getCargo() {
		return cargo;
	}

	public void setCargo(String cargo) {
		this.cargo = cargo;
	}

	public Double getSalario() {
		return salario;
	}

	public void setSalario(Double salario) {
		this.salario = salario;
	}

	// Método de Ação (clique do botão)
	public String Acao() {
		System.out.println("Clique do botão");
		System.out.println("Nome: " + this.getNome() + "\n " +
						   "Sobrenome: " + this.getSobrenome() + "\n " +
						   "Cargo: " + this.getCargo() + "\n " +
						   "Salário: " + this.getSalario() + "\n ");
		return null;
	}
}

Html – index.xhtml

<!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:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">

<f:loadBundle basename="resources.application" var="msg" />

<head>
<title><h:outputText value="#{msg.welcomeTitle}" /></title>
</head>

<h:body>
	<h2>JSF - Desenvolvimento Aberto - Managed Beans -</h2>
	<h3>
		<h:outputText id="lnome" value="Validação - Cadastros:" />
	</h3>
	<h:form>
		<h:panelGrid columns="3" cellpadding="2px">
			<h:outputText id="lnome" value="Nome:" />
			<h:inputText id="tnome" value="#{Participante.nome}" size="30"
				required="true" label="Nome" />
			<h:message for="tnome" style="color:red" />

			<h:outputText id="lsobrenome" value="Sobrenome:" />
			<h:inputText id="tsobrenome" value="#{Participante.sobrenome}"
				size="40" required="true" label="Sobrenome" />
			<h:message for="tsobrenome" style="color:red" />

			<h:outputText id="lcargo" value="Cargo" />
			<h:inputText id="tcargo" value="#{Participante.cargo}" size="25"
				required="true" label="Cargo" />
			<h:message for="tcargo" style="color:red" />

			<h:outputText id="lsalario" value="Salário" />
			<h:inputText id="tsalario" value="#{Participante.salario}"
				required="true" label="Salário"
				requiredMessage="#{msg['requerido.salario']}"
				validatorMessage="#{msg['validar.salario']}">

				<f:validateDoubleRange minimum="788.00" maximum="9999.99" />
			</h:inputText>

			<h:message for="tsalario" style="color:red" />

		</h:panelGrid>
		<br />
		<h:commandButton id="botao" action="#{Participante.Acao}"
			value="Enviar Dados" />
	</h:form>
</h:body>
</html>

Application.properties

# -- welcome --
welcomeTitle=Desenvolvimento Aberto
requerido.salario =O campo salário é obrigatório.
validar.salario =O salário não pode ser menor que o valor minimo atual.

 

 

Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s