Good morning.
I have a form in which I need to edit, change, and register records to show / select in a datatable.
IusetwoobjectsoftypeUser.useranduserSelection.However,I'mhavingtroubleeditingvaluesbecausetheformendsupbringingthedatablank.
FollowPOJO,Bean,andView.
user.xhtml
<?xmlversion="1.0" encoding="ISO-8859-1"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://java.sun.com/jsf/html"
template="/resources/template/template_restrito.xhtml">
<ui:define name="css">
<h:outputStylesheet library="css" name="restrito.css" />
</ui:define>
<ui:define name="content">
<div id="content">
<br />
<h:outputLabel value="Usuários" class="title" />
<br />
<h:form id="form">
<p:commandButton value="Novo" icon="ui-icon-document"
actionListener="#{adminBean.novoUsuario}" process="@this"
update="dataTable" oncomplete="PF('usuarioDialog').show()"
class="botaoDataTable">
<p:resetInput target="usuario-dialog" />
</p:commandButton>
<p:commandButton icon="ui-icon-pencil" id="btnEditar" title="Editar"
disabled="#{adminBean.usuario == null}" class="botaoDataTable"
process="@this" update="dataTable :form"
oncomplete="PF('usuarioDialog').show()">
<p:resetInput target="usuario-dialog" />
<f:setPropertyActionListener target="#{adminBean.usuarioSelecao}"
value="#{adminBean.usuarioSelecao}" />
</p:commandButton>
<p:commandButton icon="ui-icon-trash" id="btnExcluir"
title="Excluir" disabled="#{adminBean.usuario == null}"
class="botaoDataTable" action="#{adminBean.excluirUsuario}"
process="@this" update="dataTable btnExcluir btnEditar" />
<p:dataTable var="u" value="#{adminBean.usuarios}" paginator="true"
rows="10" class="dataTable" id="dataTable"
emptyMessage="Nenhum Usuario Cadastrado" paginatorPosition="bottom"
selection="#{adminBean.usuarioSelecao}" selectionMode="single"
rowKey="#{u.idUsuario}">
<p:ajax event="rowSelect"
updtate=":form:btnEditar :form:btnExcluir" />
<p:ajax event="rowUnselect"
updtate=":form:btnEditar :form:btnExcluir" />
<p:column headerText="Nome" sortBy="#{u.nomeUsuario}">
<h:outputText value="#{u.nomeUsuario}" />
</p:column>
<p:column headerText="E-mail" sortBy="#{u.emailUsuario}">
<h:outputText value="#{u.emailUsuario}" />
</p:column>
</p:dataTable>
<p:dialog header="Usuario" widgetVar="usuarioDialog"
id="usuario-dialog" resizable="false" modal="true"
closeOnEscape="true">
<p:messages />
<p:panelGrid styleClass="semBorda">
<p:row>
<p:column>
<h:outputLabel for="nome" value="Nome: "
class="componentePF label" />
</p:column>
<p:column>
<p:inputText id="nome" value="#{adminBean.usuario.nomeUsuario}"
class="componentePF text" />
</p:column>
</p:row>
<p:row>
<p:column>
<h:outputLabel for="email" value="E-mail: "
class="componentePF label" />
</p:column>
<p:column>
<p:inputText id="email"
value="#{adminBean.usuario.emailUsuario}"
class="componentePF text" />
</p:column>
</p:row>
<p:row>
<p:column colspan="2">
<p:commandButton value="Cadastrar" icon="ui-icon-disk"
action="#{adminBean.cadastrarUsuario}" id="cadastrarUsuario"
ajax="false" class="componentePF button" />
</p:column>
</p:row>
</p:panelGrid>
</p:dialog>
</h:form>
</div>
</ui:define>
</ui:composition>
User.java
package br.com.hidros.model.pojo;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import br.com.hidros.control.SampleEntity;
@Entity
@Table(name="usuario", schema="hidros")
public class Usuario implements Serializable, SampleEntity {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int idUsuario;
private String nomeUsuario;
private String emailUsuario;
private boolean ativo = true;
private String senhaUsuario = "abc123";
/***************************************/
/************** Construtor *************/
/***************************************/
public Usuario() {
}
/***************************************/
/********** Getters e Setters **********/
/***************************************/
public int getIdUsuario() {
return idUsuario;
}
public void setIdUsuario(int idUsuario) {
this.idUsuario = idUsuario;
}
public String getNomeUsuario() {
return nomeUsuario;
}
public void setNomeUsuario(String nomeUsuario) {
this.nomeUsuario = nomeUsuario;
}
public String getEmailUsuario() {
return emailUsuario;
}
public void setEmailUsuario(String emailUsuario) {
this.emailUsuario = emailUsuario;
}
public boolean isAtivo() {
return ativo;
}
public void setAtivo(boolean ativo) {
this.ativo = ativo;
}
public String getSenhaUsuario() {
return senhaUsuario;
}
public void setSenhaUsuario(String senhaUsuario) {
this.senhaUsuario = senhaUsuario;
}
@Override
public Long getIdSampleEntity() {
return Long.valueOf(idUsuario);
}
/***************************************/
/************ Hash e Equals ************/
/***************************************/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + (ativo ? 1231 : 1237);
result = prime * result
+ ((emailUsuario == null) ? 0 : emailUsuario.hashCode());
result = prime * result + idUsuario;
result = prime * result
+ ((nomeUsuario == null) ? 0 : nomeUsuario.hashCode());
result = prime * result
+ ((senhaUsuario == null) ? 0 : senhaUsuario.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 (emailUsuario == null) {
if (other.emailUsuario != null)
return false;
} else if (!emailUsuario.equals(other.emailUsuario))
return false;
if (idUsuario != other.idUsuario)
return false;
if (nomeUsuario == null) {
if (other.nomeUsuario != null)
return false;
} else if (!nomeUsuario.equals(other.nomeUsuario))
return false;
if (senhaUsuario == null) {
if (other.senhaUsuario != null)
return false;
} else if (!senhaUsuario.equals(other.senhaUsuario))
return false;
return true;
}
}
Bean
package br.com.hidros.control.beans;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import br.com.hidros.control.dao.PermissaoDAO;
import br.com.hidros.control.dao.UsuarioDAO;
import br.com.hidros.control.dao.Usuario_PermissaoDAO;
import br.com.hidros.model.pojo.Permissao;
import br.com.hidros.model.pojo.Usuario;
import br.com.hidros.model.pojo.Usuario_Permissao;
@ManagedBean(name="adminBean")
@SessionScoped
@SuppressWarnings("unused")
public class AdminBean implements Serializable {
private static final long serialVersionUID = 1L;
private Usuario usuario = new Usuario();
private Usuario_Permissao usuarioPermissao = new Usuario_Permissao();
private Permissao permissao = new Permissao();
private Usuario usuarioSelecao = new Usuario();
private Usuario_Permissao usuarioPermissaoSelecao = new Usuario_Permissao();
private Permissao permissaoSelecao = new Permissao();
private UsuarioDAO usuarioDAO = new UsuarioDAO();
private Usuario_PermissaoDAO usuarioPermissaoDAO = new Usuario_PermissaoDAO();
private PermissaoDAO permissaoDAO = new PermissaoDAO();
private List<Usuario> usuarios;
private List<Usuario_Permissao> permissoesUsuario;
private List<Permissao> permissoes;
/***************************************/
/*********** Métodos Próprios **********/
/***************************************/
public String sair() {
return "/restrito/homeSomore";
}
public void novoUsuario() {
usuario = new Usuario();
}
public void novaPermissao() {
permissao = new Permissao();
}
public void novoUsuarioPermissao() {
usuarioPermissao = new Usuario_Permissao();
}
public void cadastrarUsuario() {
usuarioDAO.salvar(usuario);
}
public void cadastrarPermissao() {
permissaoDAO.salvar(permissao);
permissao = null;
permissaoSelecao = null;
}
public void cadastrarUsuarioPermissao() {
usuarioPermissaoDAO.salvar(usuarioPermissao);
}
public void excluirUsuario() {
usuarioPermissaoDAO.excluir(usuarioSelecao);
usuarioDAO.excluir(usuarioSelecao);
}
public void excluirPermissao() {
usuarioPermissaoDAO.excluir(permissaoSelecao);
permissaoDAO.excluir(permissaoSelecao);
permissao = null;
permissaoSelecao = null;
}
public void excluirUsuarioPermissao() {
usuarioPermissaoDAO.excluir(usuarioPermissaoSelecao);
}
public String logar() {
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext external= context.getExternalContext();
HttpServletRequest request =(HttpServletRequest) external.getRequest();
if(request.isUserInRole("ROLE_USUARIO") || request.isUserInRole("ROLE_ADMIN") || request.isUserInRole("ROLE_GERENTE"))
return "/restrito/home.jsf";
return "/publico/home.jsf";
}
/***************************************/
/********** Getters e Setters **********/
/***************************************/
public Usuario getUsuario() {
return usuario == null ? usuario = new Usuario() : usuario;
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public Usuario_Permissao getUsuarioPermissao() {
return usuarioPermissao == null ? usuarioPermissao = new Usuario_Permissao() : usuarioPermissao;
}
public void setUsuarioPermissao(Usuario_Permissao usuarioPermissao) {
this.usuarioPermissao = usuarioPermissao;
}
public Permissao getPermissao() {
return permissao == null ? permissao = new Permissao() : permissao;
}
public void setPermissao(Permissao permissao) {
this.permissao = permissao;
}
public Usuario getUsuarioSelecao() {
return usuarioSelecao;
}
public void setUsuarioSelecao(Usuario usuarioSelecao) {
this.usuarioSelecao = usuarioSelecao;
}
public Usuario_Permissao getUsuarioPermissaoSelecao() {
return usuarioPermissaoSelecao;
}
public void setUsuarioPermissaoSelecao(Usuario_Permissao usuarioPermissaoSelecao) {
this.usuarioPermissaoSelecao = usuarioPermissaoSelecao;
}
public Permissao getPermissaoSelecao() {
return permissaoSelecao;
}
public void setPermissaoSelecao(Permissao permissaoSelecao) {
this.permissaoSelecao = permissaoSelecao;
}
public List<Usuario> getUsuarios() {
return usuarios = usuarioDAO.listar();
}
public List<Usuario_Permissao> getPermissoesUsuario() {
return permissoesUsuario = usuarioPermissaoDAO.listar();
}
public List<Permissao> getPermissoes() {
return permissoes = permissaoDAO.listar();
}
}