PrimeFaces desconfigurado ao utilizar Filter

2 respostas
A

Pessoal , eu estou fazendo minha aplicação entrar na tela de Login onde este utiliza primefaces. a tela entra desconfigurada. No entanto mesmo desconfigurada eu fizer o login tudo volta como deveria ser ate mesmo a tela de login com menuprime e tudo mais. Alguem já passou por isso? segue código:

Filtro
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package filtro;

 import java.io.IOException;   
import javax.servlet.Filter;   
import javax.servlet.FilterChain;   
import javax.servlet.FilterConfig;   
import javax.servlet.ServletException;   
import javax.servlet.ServletRequest;   
import javax.servlet.ServletResponse;   
import javax.servlet.http.HttpServletRequest;   
import javax.servlet.http.HttpServletResponse;   
import javax.servlet.http.HttpSession;   

/**
 *
 * @author deoliva
 */
public class Filtro implements Filter{  
@Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

        HttpServletRequest req = (HttpServletRequest) request;
        HttpSession session = req.getSession();

        if (session.getAttribute("logado") != null || req.getRequestURI().endsWith("login.xhtml")) {
            chain.doFilter(request, response);
        } else {
            HttpServletResponse res = (HttpServletResponse) response;
            res.sendRedirect( req.getContextPath() + "/faces/login.xhtml");
            
        }

    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void destroy() {
    }
}

login template


"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
















logintela



xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">


Facelet Title








Email :
Senha :







menu


xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">



Controle de nananan





















web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/inicio.xhtml</welcome-file>
    </welcome-file-list>
    <filter>
        <filter-name>LoginFilter</filter-name>
        <filter-class>filtro.Filtro</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
    </filter-mapping>
</web-app>

Inicio

<?xml version="1.0" encoding="UTF-8"?>
<!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"   
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      >
    <h:body>
 
    	<ui:composition template="/template.xhtml">
                <ui:define name="header">
                    <ui:include src="menu.xhtml" />
                </ui:define>
    		<ui:define name="content">
    			<h:graphicImage url="resources/imagens/fundo.jpg" width="100%" height="568px"/>
    		</ui:define>
 
		<ui:define name="footer">
    			
    		</ui:define>
 
    	</ui:composition>
 
    </h:body>
 
</html>

2 Respostas

Hebert_Coelho

Se você fizer um break point no filter você vai ver que as chamadas do primefaces para carregar o CSS/JS acaba sendo bloqueadas pelo seu filtro.

Aqui tem uma abordagem de como fazer: Aplicação Web Completa Tomcat JSF Primefaces JPA Hibernate.

A

Descobri qual era o problema:

Quando se utiliza filter, tudo pode ser bloqueado atraves de configuração no web xml. Como eu tinha colocado para passar pelo filtro tudo, ate mesmo css imagens ficam bloqueados.
então foi só dizer no web.xml o que eu quero filtrar , no caso são todos as paginas faces

assim o código xml fica:

<filter> <filter-name>LoginFilter</filter-name> <filter-class>filtro.Filtro</filter-class> <init-param> <param-name>loginActionURI</param-name> <param-value>/cintegra/faces/login.xhtml</param-value> </init-param> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>*.xhtml</url-pattern> </filter-mapping>

Criado 16 de outubro de 2012
Ultima resposta 16 de out. de 2012
Respostas 2
Participantes 2