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…