Galera estou desenvolvendo um sistema Java Web.
Tenho algumas classes já criadas com seus respectivos beans e funciona tudo corretamente.
Ao criar a classe funcionario e funcionarioBean não estou conseguindo acessa-lo no xhtml. E estou fazendo exatamente com fiz nas outra classes. Alguém da um help?
Funcionario.xhtml
<h:form id="formListagem">
<p:panel header="Lista de Funcionarios">
<p:dataTable id="tabela" emptyMessage="Nenhum registro encontrado."
paginator="true" value="#{funcionarioBean.funcionarios}" var="funcionario"
rows="5">
<f:facet name="header">
<p:commandButton value="Novo" oncomplete="PF('dialogo').show();"
actionListener="#{funcionarioBean.novo}"
update=":mensagem :formCadastro:painel">
<f:actionListener
type="org.omnifaces.eventlistener.ResetInputAjaxActionListener" />
</p:commandButton>
</f:facet>
<p:column headerText="Nome" sortBy="#{funcionario.pessoa.nome}"
filterBy="#{funcionario.pessoa.nome}">
<h:outputText value="#{funcionario.pessoa.nome}" />
</p:column>
<p:column headerText="CPF" sortBy="#{funcionario.pessoa.cpf}"
filterBy="#{funcionario.pessoa.cpf}">
<h:outputText value="#{funcionario.pessoa.cpf}" />
</p:column>
<p:column headerText="Data" sortBy="#{funcionario.dataAdmissao}"
filterBy="#{funcionario.dataAdmissao}">
<h:outputText value="#{funcionario.dataAdmissao}" />
</p:column>
<p:column headerText="Empresa" sortBy="#{funcionario.empresa.nome}"
filterBy="#{funcionario.empresa.nome}">
<h:outputText value="#{funcionario.empresa.nome}" />
</p:column>
<p:column headerText="Opções">
<p:commandButton icon="ui-icon-trash"
actionListener="#{funcionarioBean.excluir}"
update=":mensagem :formListagem:tabela">
<p:confirm header="Confirmação" message="Deseja excluir o usuário?"
icon="ui-icon-alert" />
<f:attribute name="funcionarioSelecionado" value="#{funcionario}" />
</p:commandButton>
<p:commandButton icon="ui-icon-pencil"
actionListener="#{funcionarioBean.editar}"
update=":mensagem :formCadastro:painel"
oncomplete="PF('dialogo').show();">
<f:attribute name="funcionarioSelecionado" value="#{funcionario}" />
<f:actionListener
type="org.omnifaces.eventlistener.ResetInputAjaxActionListener" />
</p:commandButton>
</p:column>
</p:dataTable>
<p:confirmDialog global="true">
<p:commandButton value="Sim" type="button"
styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="Não" type="button"
styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</p:panel>
</h:form>
FuncionarioBean
@SuppressWarnings("serial")
@ManagedBean
@ViewScoped
public class FuncionarioBean implements Serializable {
private Funcionario funcionario;
private Empresa empresa;
private Pessoa pessoa;
private List<Empresa> empresas;
private List<Pessoa> pessoas;
private List<Funcionario> funcionarios;
public Empresa getEmpresa() {
return empresa;
}
public void setEmpresa(Empresa empresa) {
this.empresa = empresa;
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public Funcionario getFuncionario() {
return funcionario;
}
public void setFuncionario(Funcionario funcionario) {
this.funcionario = funcionario;
}
public List<Empresa> getEmpresas() {
return empresas;
}
public void setEmpresas(List<Empresa> empresas) {
this.empresas = empresas;
}
public List<Pessoa> getPessoas() {
return pessoas;
}
public void setPessoas(List<Pessoa> pessoas) {
this.pessoas = pessoas;
}
public List<Funcionario> getFuncionarios() {
return funcionarios;
}
public void setFuncionarios(List<Funcionario> funcionarios) {
this.funcionarios = funcionarios;
}
@PostConstruct
public void listar(){
try{
FuncionarioDAO funcionarioDAO = new FuncionarioDAO();
funcionarios = funcionarioDAO.listar("codigo");
}catch(RuntimeException erro){
Messages.addGlobalError("Ocorreu um erro ao tentar listar os funcionarios");
erro.printStackTrace();
}
}
public void novo() {
try {
funcionario = new Funcionario();
PessoaDAO pessoaDAO = new PessoaDAO();
pessoas = pessoaDAO.listar("nome");
EmpresaDAO empresaDAO = new EmpresaDAO();
empresas = empresaDAO.listar("nome");
} catch (RuntimeException erro) {
Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo Funcionario");
erro.printStackTrace();
}
}
public void salvar() {
try {
FuncionarioDAO funcionarioDAO = new FuncionarioDAO();
funcionarioDAO.merge(funcionario);
funcionario = new Funcionario();
funcionarios = funcionarioDAO.listar("codigo");
PessoaDAO pessoaDAO = new PessoaDAO();
pessoas = pessoaDAO.listar("nome");
EmpresaDAO empresaDAO = new EmpresaDAO();
empresas = empresaDAO.listar("nome");
Messages.addGlobalInfo("Funcionario salvo com sucesso");
} catch (RuntimeException erro) {
Messages.addGlobalError("Ocorreu um erro ao tentar salvar o Funcionario");
erro.printStackTrace();
}
}
public void excluir(ActionEvent evento) {
try {
funcionario = (Funcionario) evento.getComponent().getAttributes().get("funcionarioSelecionado");
FuncionarioDAO funcionarioDAO = new FuncionarioDAO();
funcionarioDAO.excluir(funcionario);
funcionarios = funcionarioDAO.listar();
Messages.addGlobalInfo("Funcionario removido com sucesso");
} catch (RuntimeException erro) {
Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o Funcionario.");
erro.printStackTrace();
}
}
public void editar(ActionEvent evento){
try {
funcionario = (Funcionario) evento.getComponent().getAttributes().get("funcionarioSelecionado");
PessoaDAO pessoaDAO = new PessoaDAO();
pessoas = pessoaDAO.listar();
EmpresaDAO empresaDAO = new EmpresaDAO();
empresas = empresaDAO.listar();
} catch (RuntimeException erro) {
Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um Funcionario.");
erro.printStackTrace();
}
}
}