Boa noite galera, eu utilizo MySQL + Hibernate(Gerado pelo NetBeans). E tenho os seguintes problemas. Quando eu clico em salvar tem que desabilita-lo depois. O problema é que quando desabilito o botao ele não chama o metodo salvar. O segundo problema é que quando salvo ele ta salvando o nome como NULL no banco de dados. Para explicar melhor vou postar os codigos.
XHTML:
<?xml version='1.0' encoding='UTF-8' ?>
<!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:p="http://primefaces.org/ui">
<script type="text/javascript" src="Script.js"></script>
<p:dialog header="Cadastro de País" widgetVar="GRLPR001" width="600" height="235" resizable="false" minimizable="true" closable="false">
<h:panelGrid columns="13" >
<p:commandLink id="novo" disabled="#{beanGRLPR001.disabledNovo}" action="#{beanGRLPR001.novo()}" update="novo, pesquisar, painel">
<p:graphicImage value="/imagens/novo.png" style="border: none;"/>
</p:commandLink>
<p:tooltip for="novo" value="Novo" showEffect="fade" hideEffect="fade" />
<p:commandLink id="editar" disabled="#{beanGRLPR001.disabledEditar}">
<p:graphicImage value="/imagens/editar.png" style="border: none;"/>
</p:commandLink>
<p:tooltip for="editar" value="Editar" showEffect="fade" hideEffect="fade" />
<p:commandLink id="excluir" disabled="#{beanGRLPR001.disabledExcluir}">
<p:graphicImage value="/imagens/excluir.png" style="border: none;"/>
</p:commandLink>
<p:tooltip for="excluir" value="Excluir" showEffect="fade" hideEffect="fade" />
<p:commandLink id="cancelar" disabled="#{beanGRLPR001.disabledCancelar}" action="#{beanGRLPR001.cancelar()}" update="novo, pesquisar, painel" >
<p:graphicImage value="/imagens/cancelar.png" style="border: none;"/>
</p:commandLink>
<p:tooltip for="cancelar" value="Cancelar" showEffect="fade" hideEffect="fade" />
<p:commandLink id="fechar" onclick="GRLPR001.hide()" disabled="#{beanGRLPR001.disabledFechar}" >
<p:graphicImage value="/imagens/fechar.png" style="border: none;"/>
</p:commandLink>
<p:tooltip for="fechar" value="Fechar" showEffect="fade" hideEffect="fade" />
<p:spacer width="20px"/>
</h:panelGrid>
<h:panelGrid columns="1">
<h:outputText value="Código" />
</h:panelGrid>
<h:panelGrid columns="3">
<p:inputText disabled="true" style="width: 70px; height: 20px" />
<p:commandLink id="pesquisar" disabled="#{beanGRLPR001.disabledPesquisar}">
<p:graphicImage value="/imagens/pesquisar.png" style="border: none;"/>
</p:commandLink>
<p:tooltip for="pesquisar" value="Pesquisar" showEffect="fade" hideEffect="fade" />
</h:panelGrid>
<h:panelGrid id="painel" columns="1">
<p:separator style="width: 560px"/>
<h:outputText value="Nome" />
<p:inputText value="#{beanGRLPR001.gertbpai.gerNomePai}" disabled="#{not beanGRLPR001.edicao}" maxlength="40" style="width: 560px; height: 20px" />
</h:panelGrid>
<center>
<p:commandButton id="btnSalvar" value="Salvar" disabled="#{ not beanGRLPR001.disabledSalvar}" actionListener="#{beanGRLPR001.salvar()}"
style="height: 35px" update="novo, pesquisar, painel, btnSalvar"/>
</center>
</p:dialog>
</html>
O ManageBean:
package controller;
import entidades.Gertbpai;
import hibernate.HibernateUtil;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
import org.hibernate.Session;
@ManagedBean
@RequestScoped
public class BeanGRLPR001 {
public boolean disabledNovo;
public boolean disabledEditar;
public boolean disabledExcluir;
public boolean disabledCancelar;
public boolean disabledFechar;
public boolean disabledPesquisar;
public boolean disabledSalvar;
public boolean edicao;
public String status;
public Gertbpai gertbpai = new Gertbpai();
public Gertbpai getGertbpai() {
return gertbpai;
}
public void setGertbpai(Gertbpai gertbpai) {
this.gertbpai = gertbpai;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public boolean isEdicao() {
return edicao;
}
public void setEdicao(boolean edicao) {
this.edicao = edicao;
}
public boolean isDisabledCancelar() {
return disabledCancelar;
}
public void setDisabledCancelar(boolean disabledCancelar) {
this.disabledCancelar = disabledCancelar;
}
public boolean isDisabledEditar() {
return disabledEditar;
}
public void setDisabledEditar(boolean disabledEditar) {
this.disabledEditar = disabledEditar;
}
public boolean isDisabledExcluir() {
return disabledExcluir;
}
public void setDisabledExcluir(boolean disabledExcluir) {
this.disabledExcluir = disabledExcluir;
}
public boolean isDisabledFechar() {
return disabledFechar;
}
public void setDisabledFechar(boolean disabledFechar) {
this.disabledFechar = disabledFechar;
}
public boolean isDisabledNovo() {
return disabledNovo;
}
public void setDisabledNovo(boolean disabledNovo) {
this.disabledNovo = disabledNovo;
}
public boolean isDisabledPesquisar() {
return disabledPesquisar;
}
public void setDisabledPesquisar(boolean disabledPesquisar) {
this.disabledPesquisar = disabledPesquisar;
}
public boolean isDisabledSalvar() {
return disabledSalvar;
}
public void setDisabledSalvar(boolean disabledSalvar) {
this.disabledSalvar = disabledSalvar;
}
public BeanGRLPR001() {
disabledNovo = false;
disabledEditar = true;
disabledExcluir = true;
disabledCancelar = false;
disabledFechar = false;
disabledPesquisar = false;
disabledSalvar = true;
edicao = false;
}
public void novo() {
edicao = true;
disabledNovo = true;
disabledPesquisar = true;
disabledFechar = true;
disabledSalvar = false;
}
public void editar() {
edicao = true;
disabledNovo = true;
disabledPesquisar = true;
disabledFechar = true;
disabledSalvar = false;
status = "U";
}
public void cancelar() {
disabledNovo = false;
disabledEditar = true;
disabledExcluir = true;
disabledCancelar = false;
disabledFechar = false;
disabledPesquisar = false;
disabledSalvar = true;
edicao = false;
status = "";
}
public void insert() {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.save(getGertbpai());
session.getTransaction().commit();
}
public void update() {
}
public void salvar() {
insert();
}
}
Quando eu tenho não xhtml chama o metodo salvar:
<p:commandButton id="btnSalvar" value="Salvar" disabled="#{ not beanGRLPR001.disabledSalvar}" actionListener="#{beanGRLPR001.salvar()}"
style="height: 35px" update="novo, pesquisar, painel, btnSalvar"/>
Quando eu tiro o update em relação ao btnSalvar funciona:
<p:commandButton id="btnSalvar" value="Salvar" disabled="#{ not beanGRLPR001.disabledSalvar}" actionListener="#{beanGRLPR001.salvar()}"
style="height: 35px" update="novo, pesquisar, painel"/>
Ja no Manage Bean na parte do insert, grava como null:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
session.save(getGertbpai());
session.getTransaction().commit();
Mas se coloco assim ele grava:
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
getGertbpai.setGerNomePai("TESTE");
session.save(getGertbpai());
session.getTransaction().commit();
Alguem poderia me ajudar ? Abraços