Erro ao usar <h:messages />

2 respostas
N

boa tarde, estou tentando exir uma mensagem de erro pelo bean do JSF mas ocorre um erro…
minha página está assim

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<!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">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
		<title>Insert title here</title>
		<link rel="stylesheet" type="text/css" href="folhas/login_usuario.css" />
		<!--<script type="text/javascript" src="javascript/login_usuario.js"></script>-->
	</head>
	<body>
		<div id="contcenter" class="contcenter">
			<f:view>
				<h:form  prependId="false" id="form">
					<h:panelGrid styleClass="gridcenter">
						<h:inputText id="loja" value="#{login.loja}" styleClass="loja" />
						<h:inputText id="usuario" value="#{login.usuario}" styleClass="usuario" />
					</h:panelGrid>
					
					<h:commandButton id="imgbtgravar" image="imagens/btlogin.gif" action="#{login.entrarLogin}" styleClass="cmdgravar" />	
					<h:messages id="menserro" errorClass="erro" for="loja" ></h:messages>
					<span id="menerro" class="erro" />
				</h:form>
			</f:view>
		</div>
	</body>
</html>

estou usando javascript para validar alguns campos , por isso coloquei a propriedade prependId=“false” no <h:form>

meu bean está assim:

package br.com.hrwmsf.model.backingBean;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import br.com.hrwmsf.model.DAO.LoginDAO;
import br.com.hrwmsf.model.DAO._Login;
import br.com.hrwmsf.model.connection.Pool;

@ManagedBean(name="login")
@SessionScoped

public class Login 
{
	private String loja = "";
	private String usuario = "";
	private String msgBanco = "";
	private byte statusBanco = 0;
	private _Login loginDAO;
	private Login login = null;
	FacesContext context = FacesContext.getCurrentInstance();
	FacesMessage message;
	
	public String getLoja() 
	{
		return loja;
	}
	public void setLoja(String loja) 
	{
		this.loja = loja;
	}
	public String getUsuario() 
	{
		return usuario;
	}
	public void setUsuario(String usuario) 
	{
		this.usuario = usuario;
	}
	public String getMsgBanco() {
		return msgBanco;
	}
	public void setMsgBanco(String msgBanco) {
		this.msgBanco = msgBanco;
	}
	public byte getStatusBanco() {
		return statusBanco;
	}
	public void setStatusBanco(byte statusBanco) {
		this.statusBanco = statusBanco;
	}
	public String entrarLogin()
	{
		loginDAO = new LoginDAO(new Pool());
		login = loginDAO.consultarDados(loja, usuario);
		
		if(login.statusBanco == -1 || login.statusBanco == -2)
		{
			this.loja = "";
			this.usuario = "";
			message = new FacesMessage("falhaaaaaa");
			context.addMessage("form:loja", message);
			System.out.println(login);
			return "login_usuario";
		}
		else
		{
			System.out.println(login);
			return "menu";
		}
	}
	
	@Override
	public String toString() {
		return "Login [loja=" + loja + ", usuario=" + usuario + ", msgBanco="
				+ msgBanco + ", statusBanco=" + statusBanco + ", loginDAO="
				+ loginDAO + ", login=" + login + "]";
	}
}

ocorre o erro:

org.apache.jasper.el.JspELException: /login_usuario.jsp(22,5) '#{login.entrarLogin}' java.lang.IllegalStateException: Error the FacesContext is already released!

Caused by:
java.lang.IllegalStateException - Error the FacesContext is already released!

estou começando com faces, alguem pode me dar algum esclarecimento sobre o erro por favor?
obrigado…

2 Respostas

R

tenta declarando o FacesContext dentro do método entrarLogin()

N

Boa noite Rafael…
eu fiquei tentando e fiz exatamente o o que disse e funcionou…
muito obrigado pela resposta…
por acaso vc sabe o por que?
gostaria de entender…
seria pq o método está lincado e isso faz ele estar dentro do contexto?

Criado 28 de março de 2011
Ultima resposta 28 de mar. de 2011
Respostas 2
Participantes 2