Commandbutton没有更新bean

时间:2014-05-20 20:02:53

标签: html5 hibernate jsf view primefaces

我坚持这个问题并且无法解决,我查看了搜索与人名和按钮开关的相同位置。按下按钮时,将打开一个对话框,其中包含所选人员的完整数据。 (见下图)

尝试更改数据并单击“更改”按钮时,没有任何反应。跟随我的控制课和我的观点。

ManagedBean:

package br.com.banco.controller;

import javax.annotation.PostConstruct;

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 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 void salvar(){
        candidatoDAO.salvar(candidato);
        documento.setDoc_codigo(candidato.getCan_codigo());
        documentoDAO.salvar(documento);
        endereco.setEnd_codigo(candidato.getCan_codigo());
        enderecoDAO.salvar(endereco);
    }

    public void atualizar(){
        candidatoDAO.atualizar(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;
    }
}

XHTML:

<body>
    <ui:composition template="/template/master.xhtml">
    <ui:define name="conteudo">
        <h:form id="frmTblCandidato">
            <p:dataTable id="tblCandidato" var="candidato"        
            value="#{bBuscaCandidato.listar()}"
            selectionMode="single" paginator="true"
            rows="10" rowsPerPageTemplate="5,10,15"
            rowKey="bBCandidato.candidato.can_codigo">

                <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 value="Alterar" title="Alterar Candidato"
                                        oncomplete="dialogCandidato.show()"
                                        update=":frmCandidatoModal">
                    <f:setPropertyActionListener target="#{bBCandidato.candidato}" value="#{candidato}"></f:setPropertyActionListener>                     

                    </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:scrollPanel style="widtch:500px;height:500px">    
                    <h:panelGrid id="infosCandidato" columns="2" style="margin-bottom:10px">

                        <h: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"/>

                        <h: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"/>

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

                        <h:outputLabel for="sexo" value="Sexo: *"/>
                        <p:inputText id="sexo" value="#{bBCandidato.candidato.can_sexo}" label="Sexo"/>

                        <h:outputLabel for="nome" value="Nome: *"/>
                        <p:inputText id="nome" value="#{bBCandidato.candidato.can_nome}" label="Nome"/>

                        <h:outputLabel for="nome_mae" value="Nome da Mãe: *"/>
                        <p:inputText id="nome_mae" value="#{bBCandidato.candidato.can_mae}" label="Nome_mae"/>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                    </h:panelGrid>
                </p:scrollPanel>
            <p:separator/>

                    <p:commandButton actionListener="#{bBCandidato.atualizar}" id="submit" value="Atualizar"
                    />    


            </h:form>

        </p:dialog>
    </ui:define>
    </ui:composition>
</body> 
</html>

0 个答案:

没有答案