Olá.
Tenho iniciado desenvolvimento com jsf, e estou estranhando um comportamento.
Qndo abro pela primeira vez pagina login.jsf ela ignora o primafaces.
Após efetuar o login corretamente, ele é direcionado para a pagina principal no qual
exibe os componentes primefaces tranquilo. Porém se eu voltar para a pagina de login ele
mostra os componentes visuais do primafaces corretamente. Devido já estar logado.
Segue meu filter.
package filtros;
import java.io.IOException;
import javax.persistence.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class FiltroJPA implements Filter {
private EntityManagerFactory factory;
@Override
public void destroy() {
this.factory.close();
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
EntityManager entityManager = this.factory.createEntityManager();
request.setAttribute("entityManager", entityManager);
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
if (session.getAttribute("autenticado") != null
|| req.getRequestURI().endsWith("login.jsf")) {
chain.doFilter(request, response);
} else {
HttpServletResponse res = (HttpServletResponse) response;
res.sendRedirect("login.jsf");
}
try {
entityManager.getTransaction().begin();
entityManager.getTransaction().commit();
} catch (Exception e) {
entityManager.getTransaction().rollback();
} finally {
entityManager.close();
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
this.factory = Persistence.createEntityManagerFactory("health");
}
}
Segue pagina login.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.prime.com.tr/ui" >
<h:head>
<title>Login - Digite o usuario e a senha. </title>
</h:head>
<h:body>
<h:form>
<p:panel header="Digite o usuario e a senha..">
<h:panelGrid columns="2">
<h:outputText value="Usuario: " />
<p:inputText value="#{usuarioMB.login}"/>
<h:outputText value="Senha: " />
<p:password value="#{usuarioMB.senha}" />
<h:commandButton value="Entrar" action="#{usuarioMB.entrar}"/>
</h:panelGrid>
</p:panel>
</h:form>
</h:body>
</html>
Alguém pode me dar uma luz?