Ola pessoal!Boa tarde!
Estou usando a especificação bean validation e notei que com primefaces as mensagens de validação não aparecem,primeiro gostaria de saber,é possível usar esse tipo de especificação com primefaces? E segundo,quais dependências corretas preciso utilizar.
Aqui está meu código Bean:
@Entity
public class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(nullable=false,length=11)
private Integer codigo;
@NotEmpty()
@Column(length=40,nullable=false)
@Size(min=5,max=30)
private String nome;
@Email(message = "Email não pode ser nulo!")
@Column(length=60,nullable=false)
private String email;
@NaturalId(mutable = true)
@NotNull(message = "Login não pode ser nulo!")
@Column(length=20,nullable=false)
private String login;
@NotNull(message = "Senha não pode ser nulo!")
@Column(length=30,nullable=false)
private String senha;
@NotNull(message="Data não pode ser nulo!")
@Column(nullable=false)
@Temporal(TemporalType.TIMESTAMP)
private Date nascimento;
@NotEmpty(message = "Celular não pode ser nulo!")
@Column(length=17,nullable=false)
private String celular;
@Column(length=10)
private String idioma;
private boolean ativo;
@NotNull(message = "Empresa não pode ser nulo!")
@Column(length=11,nullable=false)
private Integer cod_empresa;
@NotNull(message = "Unidade não pode ser nulo!")
@Column(length=11,nullable=false)
private Integer cod_unidade;
@NotNull(message = "Filial não pode ser nulo!")
@Column(length=11,nullable=false)
private Integer cod_filial;
@ElementCollection(targetClass = String.class)
@JoinTable(
name = "usuario_permissao", uniqueConstraints = { @UniqueConstraint(columnNames = { "usuario",
"permissao" }) }, joinColumns = @JoinColumn(name = "usuario"))
@Column(name = "permissao", length = 50)
private Set<String> permissao = new HashSet<String>();
public Integer getCodigo() {
return codigo;
}
public void setCodigo(Integer codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public Date getNascimento() {
return nascimento;
}
public void setNascimento(Date nascimento) {
this.nascimento = nascimento;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
public String getIdioma() {
return idioma;
}
public void setIdioma(String idioma) {
this.idioma = idioma;
}
public boolean isAtivo() {
return ativo;
}
public void setAtivo(boolean ativo) {
this.ativo = ativo;
}
public Integer getCod_empresa() {
return cod_empresa;
}
public void setCod_empresa(Integer cod_empresa) {
this.cod_empresa = cod_empresa;
}
public Integer getCod_unidade() {
return cod_unidade;
}
public void setCod_unidade(Integer cod_unidade) {
this.cod_unidade = cod_unidade;
}
public Integer getCod_filial() {
return cod_filial;
}
public void setCod_filial(Integer cod_filial) {
this.cod_filial = cod_filial;
}
public Set<String> getPermissao() {
return permissao;
}
public void setPermissao(Set<String> permissao) {
this.permissao = permissao;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (ativo ? 1231 : 1237);
result = prime * result + ((celular == null) ? 0 : celular.hashCode());
result = prime * result + ((cod_empresa == null) ? 0 : cod_empresa.hashCode());
result = prime * result + ((cod_filial == null) ? 0 : cod_filial.hashCode());
result = prime * result + ((cod_unidade == null) ? 0 : cod_unidade.hashCode());
result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
result = prime * result + ((email == null) ? 0 : email.hashCode());
result = prime * result + ((idioma == null) ? 0 : idioma.hashCode());
result = prime * result + ((login == null) ? 0 : login.hashCode());
result = prime * result + ((nascimento == null) ? 0 : nascimento.hashCode());
result = prime * result + ((nome == null) ? 0 : nome.hashCode());
result = prime * result + ((permissao == null) ? 0 : permissao.hashCode());
result = prime * result + ((senha == null) ? 0 : senha.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Usuario other = (Usuario) obj;
if (ativo != other.ativo)
return false;
if (celular == null) {
if (other.celular != null)
return false;
} else if (!celular.equals(other.celular))
return false;
if (cod_empresa == null) {
if (other.cod_empresa != null)
return false;
} else if (!cod_empresa.equals(other.cod_empresa))
return false;
if (cod_filial == null) {
if (other.cod_filial != null)
return false;
} else if (!cod_filial.equals(other.cod_filial))
return false;
if (cod_unidade == null) {
if (other.cod_unidade != null)
return false;
} else if (!cod_unidade.equals(other.cod_unidade))
return false;
if (codigo == null) {
if (other.codigo != null)
return false;
} else if (!codigo.equals(other.codigo))
return false;
if (email == null) {
if (other.email != null)
return false;
} else if (!email.equals(other.email))
return false;
if (idioma == null) {
if (other.idioma != null)
return false;
} else if (!idioma.equals(other.idioma))
return false;
if (login == null) {
if (other.login != null)
return false;
} else if (!login.equals(other.login))
return false;
if (nascimento == null) {
if (other.nascimento != null)
return false;
} else if (!nascimento.equals(other.nascimento))
return false;
if (nome == null) {
if (other.nome != null)
return false;
} else if (!nome.equals(other.nome))
return false;
if (permissao == null) {
if (other.permissao != null)
return false;
} else if (!permissao.equals(other.permissao))
return false;
if (senha == null) {
if (other.senha != null)
return false;
} else if (!senha.equals(other.senha))
return false;
return true;
}
}
Pagina de visualização:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head><title>Cadastro Usuário</title>
<f:metadata>
<f:viewParam name = "id" value = "#{usuarioBean.usuarioSelecionado.codigo}"/>
</f:metadata>
</h:head>
<ui:composition template="/template/interna.xhtml">
<ui:define name="titulo">Cadastro Usuário</ui:define>
<ui:define name="corpo">
<p:messages/>
<h:form id = "cadastroUsuario" >
<h:inputHidden value="#{usuarioBean.iniciar().codigo}" />
<h:inputHidden value="#{usuarioBean.iniciar().ativo}" />
<div class = "ui-fluid">
<p:panelGrid columns="2" styleClass="ui-panelgrid-blank">
<p:outputLabel value = "Nome:" for = "nome"/>
<p:inputText value="#{usuarioBean.iniciar().nome}"
size="30"
maxlength="30"
id="nome"
label="Nome"
style="width:auto">
</p:inputText>
<p:outputLabel value = "Data Nascimento:" for = "data"/>
<p:inputMask id = "data" label ="Data de Nascimento" value = "#{usuarioBean.iniciar().nascimento}"
size = "10"
maxlength="10"
mask="99/99/9999"
style="width:auto">
<f:convertDateTime dateStyle="medium"/>
</p:inputMask>
<p:outputLabel value = "Celular:" for = "celular"/>
<p:inputText
id ="celular"
label = "Celular"
value = "#{usuarioBean.iniciar().celular}"
size = "17"
maxlength="17"
style = "width:auto">
<f:convertNumber integerOnly="true" />
<f:convertNumber pattern="#################" maxFractionDigits="0" />
</p:inputText>
<p:outputLabel value = "Email:" for = "email"/>
<h:panelGroup>
<p:inputText id = "email"
label = "Email"
value="#{usuarioBean.iniciar().email}"
size = "50"
maxlength="50"
validatorMessage="Email inválido"
style="width:auto">
</p:inputText>
<p:message for="email"/>
</h:panelGroup>
<p:outputLabel value="Empresa:"/>
<p:selectOneMenu style="width:110px" value="#{usuarioBean.usuario.cod_empresa}" id = "EmpresaId">
<f:converter converterId="converterEmpresa" for = "EmpresaId"/>
<f:selectItem itemLabel="--Selecione--" noSelectionOption="true" itemDisabled="true"/>
<f:selectItems value="#{empresaBean.listar()}" var="empresa" itemLabel="#{empresa.cod_empresa}" itemValue="#{empresa.cod_empresa}"/>
</p:selectOneMenu>
<p:outputLabel value="Filial:"/>
<p:selectOneMenu style="width:110px" value="#{usuarioBean.usuario.cod_filial}" id="FilialId">
<f:converter converterId="converterFilial" for="FilialId"/>
<f:selectItem itemLabel="--Selecione--" noSelectionOption="true" itemDisabled="true"/>
<f:selectItems value="#{filialBean.listar()}" var="filial" itemLabel="#{filial.cod_filial}" itemValue="#{filial.cod_filial}"/>
</p:selectOneMenu>
<p:outputLabel value="Unidade Negócio:"/>
<p:selectOneMenu style="width:110px" value="#{usuarioBean.usuario.cod_unidade}" id="UnidadeId">
<f:converter converterId="converterUnidade" for="UnidadeId"/>
<f:selectItem itemLabel="--Selecione--" noSelectionOption="true" itemDisabled="true"/>
<f:selectItems value="#{unidadeNegocioBean.listar()}" var="unidade" itemLabel="#{unidade.cod_unidade}" itemValue="#{unidade.cod_unidade}"/>
</p:selectOneMenu>
<p:outputLabel value="Idioma:" for = "idioma"/>
<p:selectOneMenu id="idioma" value="#{usuarioBean.iniciar().idioma}" style="width:110px" >
<f:selectItem itemLabel="--Selecione--" noSelectionOption="true"/>
<f:selectItem itemValue="pt_BR" itemLabel="Portugues"/>
<f:selectItem itemValue="en_US" itemLabel="English"/>
<f:selectItem itemValue="es_ES" itemLabel="Espanhol"/>
</p:selectOneMenu>
<p:outputLabel value="Login:" for = "login" />
<p:inputText label = "Login" value="#{usuarioBean.iniciar().login}"
id = "login"
size = "15"
style="width:auto"
validator="#{usuarioBean.validarUsuario}">
</p:inputText>
<p:outputLabel value="Senha:" for = "senha"/>
<p:password value="#{usuarioBean.iniciar().senha}"
id = "senha"
label = "Senha"
size = "10"
redisplay="true"
rendered="#{usuarioBean.mostrarSenha() == false}"
style="width:auto"
/>
<p:inputText value="#{usuarioBean.iniciar().senha}" rendered="#{usuarioBean.mostrarSenha()}" />
<p:outputLabel value="Confirmar Senha:" for = "confirmarsenha"/>
<p:password value="#{usuarioBean.confirmarSenha}"
id = "confirmarsenha"
label = "Confirmar Senha"
size = "10"
redisplay = "true"
style="width:auto"
validator="#{usuarioBean.validarUsuario}"/>
<p:commandButton action = "#{usuarioBean.salvar()}" value = "Salvar" id="salvar" >
<p:confirm header="Confirmation" message="Deseja realmente salvar?" icon="ui-icon-disk"/>
</p:commandButton>
<p:confirmDialog global="true" showEffect="fade" hideEffect="fade">
<p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</p:panelGrid>
</div>
</h:form>
</ui:define>
</ui:composition>
</html>