Não estou conseguindo cadastrar um novo usuário e exibir dados da sessão de usuários cadastrados. Vou postar os códigos pra ficar mais fácil de explicar:
telaCadastroPromotor
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
template="/resources/template.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:define name="Conteudo">
<h:form>
<p:growl id="growl" showDetail="true"/>
<p:panel header="Cadastro Promotor">
<p:fieldset legend="Identificação" toggleable="true" toggleSpeed="500">
<p:ajax event="toggle" listener="#{fieldsetBean.handleToggle}" update="growl" />
<h:panelGrid columns="2" cellpadding="10">
<h:outputLabel styleClass="labelForm" value="Login: " for="login"/>
<p:inputText id="login" value="#{usuarioMB.promotor.login}"/>
<h:outputLabel styleClass="labelForm" value="Senha: " for="senha"/>
<p:inputText id="senha" type="password" value="#{usuarioMB.promotor.senha}"/>
<h:outputLabel styleClass="labelForm" value="Nome: " for="nome"/>
<p:inputText id="nome" value="#{usuarioMB.promotor.nome}"/>
<h:outputLabel styleClass="labelForm" value="Razão Social: " for="razaoSocial"/>
<p:inputText id="razaoSocial" value="#{usuarioMB.promotor.razaoSocial}"/>
<h:outputLabel styleClass="labelForm" value="Nome Fantasia: " for="nomeFantasia"/>
<p:inputText id="nomeFantasia" value="#{usuarioMB.promotor.nomeFantasia}"/>
<h:outputLabel styleClass="labelForm" value="CNPJ: " for="cnpj"/>
<p:inputText id="cnpj" value="#{usuarioMB.promotor.CNPJ}"/>
</h:panelGrid>
</p:fieldset>
<p:fieldset legend="Endereço" toggleable="true" toggleSpeed="500">
<p:ajax event="toggle" listener="#{fieldsetBean.handleToggle}" update="growl" />
<h:panelGrid columns="4" cellpadding="10">
<h:outputLabel styleClass="labelForm" value="Rua: " for="rua"/>
<p:inputText id="rua" value="#{usuarioMB.promotor.endereco.rua}"/>
<h:outputLabel styleClass="labelForm" value="Número: " for="numero"/>
<p:inputText id="numero" value="#{usuarioMB.promotor.endereco.numero}"/>
<h:outputLabel styleClass="labelForm" value="Bairro: " for="bairro"/>
<p:inputText id="bairro" value="#{usuarioMB.promotor.endereco.bairro}"/>
<h:outputLabel styleClass="labelForm" value="CEP: " for="cep"/>
<p:inputText id="cep" value="#{usuarioMB.promotor.endereco.CEP}"/>
<h:outputLabel styleClass="labelForm" value="Cidade " for="cidade"/>
<p:inputText id="cidade" value="#{usuarioMB.promotor.endereco.cidade}"/>
<h:outputLabel styleClass="labelForm" value="Estado: " for="estado"/>
<p:inputText id="estado" value="#{usuarioMB.promotor.endereco.estado}" size="2"/>
</h:panelGrid>
</p:fieldset>
<p:fieldset legend="Contato" toggleable="true" toggleSpeed="500">
<p:ajax event="toggle" listener="#{fieldsetBean.handleToggle}" update="growl" />
<h:panelGrid columns="2" cellpadding="10">
<h:outputLabel styleClass="labelForm" value="Telefone: " for="tel"/>
<p:inputText id="tel" value="#{usuarioMB.promotor.contato.numeroTelefone}"/>
<h:outputLabel styleClass="labelForm" value="Celular: " for="cel"/>
<p:inputText id="cel" value="#{usuarioMB.promotor.contato.numeroCelular}"/>
<h:outputLabel styleClass="labelForm" value="Email: " for="email"/>
<p:inputText id="email" value="#{usuarioMB.promotor.contato.email}"/>
</h:panelGrid>
</p:fieldset>
<p:panel style="text-align: center" collapsed="2">
<p:commandButton value="Salvar" action="#{usuarioMB.salvar}"/>
<p:commandButton value="Cancelar" type="reset"/>
</p:panel>
</p:panel>
</h:form>
</ui:define>
</ui:composition>
UsuarioMB
package com.modelo.managedBean;
import com.modelo.bean.Administrador;
import com.modelo.bean.Promotor;
import com.modelo.bean.Usuario;
import com.modelo.dao.UsuarioDAO;
import java.util.ArrayList;
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;
@ManagedBean
@SessionScoped
public class UsuarioMB {
private Integer id;
private UsuarioDAO usuarioDAO = new UsuarioDAO();
private Administrador administrador = null;
private Promotor promotor = new Promotor();
private List<Usuario> usuarios = new ArrayList<Usuario>();
public String logOut() {
getRequest().getSession().invalidate();
return "logout";
}
public boolean isUserAdmin() {
return getRequest().isUserInRole("admin");
}
public boolean isUserPromotor() {
return getRequest().isUserInRole("promotor");
}
private HttpServletRequest getRequest() {
return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
}
// REGRAS DE NEGOCIO
public Promotor getPromotor() {
if (promotor.getLogin().equals("")) {
return promotor;
} else if (promotor != null) {
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
String login = context.getUserPrincipal().getName();
PEGAR DO BD
}
return promotor;
}
public Administrador getAdministrador() {
if (administrador != null) {
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
String login = context.getUserPrincipal().getName();
administrador = new Administrador();
administrador.setLogin(login);
//TERMINARRRR
}
return administrador;
}
public String salvar() {
promotor.getGrupoAcesso().setLogin(promotor.getLogin());
if (usuarioDAO.inserirUsuario(promotor)) {
return "sucessoOperacao";
} else {
return "falhaOperacao";
}
}
}
No caso, eu posso cadastrar somente um Promotor mas tipo não consigo fazer funcionar para as duas situações: cadastrar e recuperar do BD.
Por que o método getPromotor é chamado quando estou cadastrando um novo Promotor?
Peguei por base o post do jakefrog http://uaihebert.com/?p=836&page=8