我的代码没有在我的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>
答案 0 :(得分:0)
当你有
时immediate="true"
在你的按钮上,这告诉应用程序跳到第6阶段,放弃阶段2,3,4和5.删除它,它应该工作:D