Mensagem do catch(SQLExeception e) para o formulário JSF

2 respostas
leonardocoutoc

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>

2 Respostas

leonardocoutoc

Boa noite pessoal,

E ae alguém se arrisca?

Grato,

Leonardo Couto.

leonardocoutoc

Ola pessoal,

Descobri qual foi o problema, por falta de atenção minha tinha os blocos try e catch estavam tb no DAO e o catch que estava sendo executado era do DAO e não do controller.

att,

Leonardo Couto.

Criado 12 de maio de 2009
Ultima resposta 13 de mai. de 2009
Respostas 2
Participantes 1