JSF从第1阶段跳到第6阶段

时间:2014-05-21 20:08:53

标签: java hibernate jsf jsf-2 lifecycle

我的代码没有在我的bean中写入数据,我在生命周期中进行了调试,发现它直接跳到阶段1到6.我发现代码中没有错误,有人可以帮我吗?我的Bean和xHTML:

    package br.com.banco.controller;

import javax.annotation.PostConstruct;
import javax.faces.component.html.HtmlInputText;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.event.ValueChangeEvent;

import org.hibernate.Session;

import br.com.banco.model.bean.Candidato;
import br.com.banco.model.bean.Documento;
import br.com.banco.model.bean.Endereco;
import br.com.banco.model.dao.HibernateDAO;
import br.com.banco.util.FacesContextUtil;

@javax.faces.bean.ManagedBean (name="bBCandidato")
@javax.faces.view.ViewScoped
public class BBCandidato {

    private Candidato candidato;
    private Documento documento;
    private Endereco endereco;
    private java.util.List<Candidato> candidatos;

    private Session session;
    private HibernateDAO<Candidato> candidatoDAO;
    private HibernateDAO<Documento> documentoDAO;
    private HibernateDAO<Endereco> enderecoDAO;

    @PostConstruct
    public void init(){
        session = FacesContextUtil.getRequestSession();
        candidatoDAO = new HibernateDAO<Candidato>(Candidato.class, session);
        documentoDAO = new HibernateDAO<Documento>(Documento.class, session);
        enderecoDAO = new HibernateDAO<Endereco>(Endereco.class, session);
        candidato = new Candidato();
        documento = new Documento();
        endereco = new Endereco();
    }

    public java.util.List<Candidato> listar(){
        if(candidatos == null){
            candidatos = candidatoDAO.getBeans();            
        }
        return candidatos;
    }

    public void salvar(){
        System.out.println("Testandooo");
        candidatoDAO.salvar(candidato);
        documento.setDoc_codigo(candidato.getCan_codigo());
        documentoDAO.salvar(documento);
        endereco.setEnd_codigo(candidato.getCan_codigo());
        enderecoDAO.salvar(endereco);
    }

    public void atualizar(){
        System.out.println("Testandooo");
        candidatoDAO.atualizar(candidato);
        documentoDAO.atualizar(documento);
        enderecoDAO.atualizar(endereco);
    }

    public void remover(){
        candidatoDAO.excluir(candidato);
    }

    public Candidato getCandidato(){
        return candidato;
    }

    public void setCandidato(Candidato candidato){ 
        this.candidato = candidato; 
    }

    public Documento getDocumento() {
        return documento;
    }

    public void setDocumento(Documento documento) {
        this.documento = documento;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

}





<!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://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui">

<body>
    <ui:composition template="/template/master.xhtml">
    <ui:define name="conteudo">

        <h:form id="frmTblCandidato">
            <p:dataTable 
            id="tblCandidato"
            value="#{bBCandidato.listar()}" var="candidato"     
            rowKey="candidato.can_codigo" selectionMode="single"
            paginator="true" rows="10" rowsPerPageTemplate="5,10,15">


                <p:column filterBy="#{candidato.can_nome}" headerText="Nome">
                    <h:outputText value="#{candidato.can_nome}"/>
                </p:column>

                <p:column headerText="Data de Registro">
                    <h:outputText value="#{candidato.can_dataregistro}"/>
                </p:column>

                <p:column headerText="RG">
                    <h:outputText value="#{candidato.documento.doc_identidade}"/>
                </p:column>

                <p:column headerText="CPF">
                    <h:outputText value="#{candidato.documento.doc_cpf}"/>
                </p:column>

                <p:column headerText="Alterar" style="text-align:left, width: 1px">
                    <p:commandButton process="@form" value="Alterar" title="Alterar Candidato"
                                        oncomplete="dialogCandidato.show()"
                                        update=":frmCandidatoModal">
                    <f:setPropertyActionListener target="#{bBCandidato.candidato}" value="#{candidato}"/>                               
                    </p:commandButton>
                </p:column>

                <p:column headerText="Excluir" style="text-align:left; width:1px">
                    <p:commandButton value="Excluir" title="Excluir"
                                    onclick="confirmation.show();"
                                    update=":frmRemoveCandidato">
                    <f:setPropertyActionListener target="#{bBCandidato.candidato}" value="#{candidato}"/>
                    </p:commandButton>              
                </p:column>

            </p:dataTable>
        </h:form>



        <p:dialog id="dialog" header="Candidato" widgetVar="dialogCandidato"
        appendToBody="true" resizable="false" closable="false"
        modal="true" showEffect="fade" hideEffect="fade" width="500" >

                <h:form id="frmCandidatoModal">

                    <p:panelGrid id="infosCandidato" columns="3" style="margin-bottom:10px">
                        <!-- 
                        <p:outputLabel for="d_registro" value="Data Registro: *"/>
                        <p:calendar id="d_registro" value="#{bBCandidato.candidato.can_dataregistro}" label="Data_Registro" pattern="dd/MM/yyyy" showOn="button" navigator="true"/>

                        <p:outputLabel for="d_nascimento" value="Data Nascimento: *"/>
                        <p:calendar id="d_nascimento" value="#{bBCandidato.candidato.can_datanascimento}" navigator="true" pattern="dd/MM/yyyy" showOn="button" label="Data_Nascimento"/>

                        <p:outputLabel for="etnia" value="Etnia: *"/>
                        <p:inputText id="etnia" value="#{bBCandidato.candidato.can_etnia}" label="Etnia"/>

                        <p:outputLabel for="sexo" value="Sexo: *"/>
                        <p:inputText id="sexo" value="#{bBCandidato.candidato.can_sexo}" label="Sexo"/>
                        -->
                        <p:outputLabel for="nome" value="Nome: *"/>
                        <h:inputText id="nome" value="#{bBCandidato.candidato.can_nome}" label="Nome"
                        binding="#{bBCandidato.inputValue}"
                        valueChangeListener="#{bBCandidato.inputChanged}">
                        <f:converter converterId="myConverter"/>
                        <f:validator validatorId="myValidator"/>
                        </h:inputText>
                        <!-- 
                        <p:outputLabel for="nome_mae" value="Nome da Mãe: *"/>
                        <p:inputText id="nome_mae" value="#{bBCandidato.candidato.can_mae}" label="Nome_mae"/>

                        <p:outputLabel for="nome_pai" value="Nome do Pai: *"/>
                        <p:inputText id="nome_pai" value="#{bBCandidato.candidato.can_pai}" label="Nome_pai"/>

                        <p:outputLabel for="tipo_sanguineo" value="Tipo Sangüineo: *"/>
                        <p:inputText id="tipo_sanguineo" value="#{bBCandidato.candidato.can_tiposangue}" label="Tipo_sanguineo"/>

                        <p:outputLabel for="nacionalidade" value="Nacionalidade: *"/>
                        <p:inputText id="nacionalidade" value="#{bBCandidato.candidato.can_nacionalidade}" label="Nacionalidade"/>

                        <p:outputLabel for="naturalidade" value="Naturalidade: *"/>
                        <p:inputText id="naturalidade" value="#{bBCandidato.candidato.can_naturalidade}" label="Naturalidade"/>

                        <p:outputLabel for="uf" value="UF: *"/>
                        <p:inputText id="uf" value="#{bBCandidato.candidato.can_uf}" label="UF"/>

                        <p:outputLabel for="doc_identidade" value="RG: *"/>
                        <p:inputText id="doc_identidade" value="#{bBCandidato.documento.doc_identidade}" label="Identidade"/>

                        <p:outputLabel for="doc_expeditor" value="Orgão Expeditor: *"/>
                        <p:inputText id="doc_expeditor" value="#{bBCandidato.documento.doc_expeditor}" label="Expeditor"/>

                        <p:outputLabel for="doc_uf" value="UF: *"/>
                        <p:inputText id="doc_uf" value="#{bBCandidato.documento.doc_uf}" label="UF"/>

                        <p:outputLabel for="doc_cpf" value="CPF: *"/>
                        <p:inputText id="doc_cpf" value="#{bBCandidato.documento.doc_cpf}" label="CPF"/>

                        <p:outputLabel for="doc_estado_civil" value="Estado Civil: *"/>
                        <p:inputText id="doc_estado_civil" value="#{bBCandidato.documento.doc_estado_civil}" label="Estado Civil"/>

                        <p:outputLabel for="doc_escolaridade" value="Escolaridade: *"/>
                        <p:inputText id="doc_escolaridade" value="#{bBCandidato.documento.doc_escolaridade}" label="Escolaridade"/>

                        <p:outputLabel for="doc_profissao" value="Profissão: *"/>
                        <p:inputText id="doc_profissao" value="#{bBCandidato.documento.doc_profissao}" label="Profissao"/>

                        <p:outputLabel for="end_rua" value="Rua: *"/>
                        <p:inputText id="end_rua" value="#{bBCandidato.endereco.end_rua}" label="Rua"/>

                        <p:outputLabel for="end_bairro" value="Bairro: *"/>
                        <p:inputText id="end_bairro" value="#{bBCandidato.endereco.end_bairro}" label="Bairro"/>

                        <p:outputLabel for="end_cidade" value="Cidade: *"/>
                        <p:inputText id="end_cidade" value="#{bBCandidato.endereco.end_cidade}" label="cidade"/>

                        <p:outputLabel for="end_uf" value="UF: *"/>
                        <p:inputText id="end_uf" value="#{bBCandidato.endereco.end_uf}" label="UF"/>                    

                        <p:outputLabel for="end_cep" value="CEP: *"/>
                        <p:inputText id="end_cep" value="#{bBCandidato.endereco.end_cep}" label="Rua"/>

                        <p:outputLabel for="end_telefone" value="Telefone: *"/>
                        <p:inputText id="end_telefone" value="#{bBCandidato.endereco.end_telefone}" label="Telefone"/>                  
     -->                                    
                </p:panelGrid>

            <p:separator/>

            <p:commandButton value="Atualizar" title="Atualizar" process="@this" 
                                actionListener="#{bBCandidato.atualizar}" id="submit" 
                                update="infosCandidato,:frmTblCandidato" 
                                oncomplete="PF('dialogCadidato').hide();"/> 
            <p:commandButton value="Cancelar" title="Cancelar"
                             immediate="true" oncomplete="dialogCandidato.hide();"/>                                        

            </h:form>

        </p:dialog>

        <p:confirmDialog id="confirmDialog" message="Confirma exclusão do Candidato?"
                        header="Confirme" severity="alert" widgetVar="confirmation" appendToBody="true">

                <h:form id="frmRemoveCandidato">
                    <p:commandButton value="Sim"
                                    oncomplete="confirmation.hide()"
                                    update=":frmTblCandidato"
                                    action="#{bBCandidato.remover}"/>
                    <p:commandButton immediate="true" value="Não"
                                    onclick="confirmation.hide()"/>             
                </h:form>
        </p:confirmDialog>
    </ui:define>
    </ui:composition>
</body> 
</html>

1 个答案:

答案 0 :(得分:0)

当你有

immediate="true"

在你的按钮上,这告诉应用程序跳到第6阶段,放弃阶段2,3,4和5.删除它,它应该工作:D