我坚持这个问题并且无法解决,我查看了搜索与人名和按钮开关的相同位置。按下按钮时,将打开一个对话框,其中包含所选人员的完整数据。 (见下图)
尝试更改数据并单击“更改”按钮时,没有任何反应。跟随我的控制课和我的观点。
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>