Java EE/Bean Validaton: diferenças entre revisões
[edição verificada] | [edição verificada] |
Sem resumo de edição |
Sem resumo de edição |
||
Linha 67: | Linha 67: | ||
É importante notar que apesar de a validação não permitir que a variável receba <code>null</code>, na instanciação do ''Bean'' <code>String nome</code> é inicializada com <code>null</code> como é padrão na plataforma Java SE. A primeira validação ocorre apenas quando é feita a primeira submissão dos dados do <code>form</code>. |
É importante notar que apesar de a validação não permitir que a variável receba <code>null</code>, na instanciação do ''Bean'' <code>String nome</code> é inicializada com <code>null</code> como é padrão na plataforma Java SE. A primeira validação ocorre apenas quando é feita a primeira submissão dos dados do <code>form</code>. |
||
{{AutoCat}} |
Revisão das 20h16min de 18 de maio de 2016
Bean Validation é a especificação definida pela JSR 349 para definição de restrições e validações de dados para a plataforma Java SE e EE. Sua implementação de referência é o Hibernate Validator.
Demonstração simples
Será demonstrada uma simples validação de campo em página web que restringe o preenchimento de campo para valor não vazio.
Para atingirmos tal objetivo, utilizaremos uma página XHTML
com um h:message
apontando para um h:inputText
vinculado a uma variável String de um Backing Bean. Essa variável será anotada com @NotNull
. Ao submeter o formulário com o campo vazio, uma mensagem de validação será renderizada pelo servidor no componente h:message
.
Para executar os seguintes códigos é necessário que o descritor de implantação web.xml
esteja configurado para que campos vazios sejam convertidos em null
ao invés do comportamento padrão de conversão em Strings vazias.
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
No Bean abaixo a variável de referência String Nome
é restringida com a anotação @NotNull
para que não seja null
.
package org.wikibooks.pt.javaee;
import javax.enterprise.inject.Model;
import javax.validation.constraints.NotNull;
@Model
public class Usuario {
@NotNull
private String nome;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
O XHTML
abaixo gerará a página Web com o campo que sofrerá a validação.
<?xml version="1.0" encoding="UTF-8" ?>
<!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:h="http://xmlns.jcp.org/jsf/html">
<head>
<title>Conhecendo as restrições embutidas</title>
</head>
<body>
<h:form id="formulario">
<h:panelGrid columns="3" cellpadding="5">
<h:outputLabel for="nome" value="Nome" />
<h:inputText id="nome" value="#{usuario.nome}" />
<h:message for="nome" />
<h:panelGroup />
<h:commandButton value="Enviar dados" style="float:right" />
</h:panelGrid>
</h:form>
</body>
</html>
Ao clicar no botão Enviar dados com o campo Nome em branco será exibida a mensagem não pode ser nulo.
É importante notar que apesar de a validação não permitir que a variável receba null
, na instanciação do Bean String nome
é inicializada com null
como é padrão na plataforma Java SE. A primeira validação ocorre apenas quando é feita a primeira submissão dos dados do form
.