Bom dia pessoal,
Estou desenvolvendo um programa com jsf e estou com um pequeno problema não sei o que acontece mas quando o metodo inserirEmpresa() entra no catch a mensagem de erro vindo do BD(e.getMesage)não é passada para o formulário jsp. Mas se o cadastro foi efetudo com sucesso a mensagem de informação(FacesMessage.SEVERITY_INFO) é colocada normalmente no formulário JSP. Abaixo o meu controlador de bean e minha página jsf:
CONTROLADOR DO BEAN:
package br.com.sinart.mapas.controllersOfBean;
import java.sql.SQLException;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import br.com.sinart.mapas.managedBeans.Empresa;
import br.com.sinart.mapas.pesistencia.DAO.CadastroEmpresa;
import br.com.sinart.mapas.pesistencia.DAO.CadastroEmpresaDAO;
public class EmpresaController {
public Empresa empresa;
public void inserirEmpresa(javax.faces.event.ActionEvent evento){
FacesContext facesContext = FacesContext.getCurrentInstance();
CadastroEmpresa cadastroEmpresaDAO = new CadastroEmpresaDAO();
try {
if(cadastroEmpresaDAO.cadastrarEmpresa(empresa)){
facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, " Empresa "+ empresa.getNomeDaEmpresa() + " cadastrada com sucesso.", null));
empresa = null;
}
}
catch (SQLException e) {
facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, " Erro ao tentar cadastrar empresa " + e.getMessage(), null));
e.printStackTrace();
}
}
/**
* @return the empresa
*/
public Empresa getEmpresa() {
if(empresa == null){
empresa = new Empresa();
}
return empresa;
}
}
MEU JSP:
<h:panelGrid border="0" cellspacing="10" id="painelCadastroEmpresa"
columns="3" width="100%">
<h:outputText value="Nome da empresa: "></h:outputText>
<h:inputText requiredMessage=" Preencha o campo!" required="true" id="campoCadEmpresa" value="#{empresaController.empresa.nomeDaEmpresa}" size="30">
<f:validateLength maximum="35" minimum="1"></f:validateLength>
</h:inputText>
<h:outputLabel />
<h:messages layout="table" dir="LTR" warnClass="font_warning"
errorClass="font_erro" infoClass="font_info">
</h:messages>
<br />
<h:outputLabel />
<h:outputLabel />
<h:commandButton value="Cadastrar" actionListener="#{empresaController.inserirEmpresa}"/>
</h:panelGrid>