Página xhtml não renderiza

20 respostas
C

Galera to desenvolvendo um projeto da facul,
tenho a seguinte estrutura de paginas xhtml dentro da pasta web-inf

paginas
—menu
-----menu.xhtml
—restrito
-----vozComandante.xhtml
index.xhtml

quando estou no index beleza renderiza normal mas quando navego para a area restrita a pagina naum renderiza e fica em branco, alguem sabe porque ?

Obrigado!

20 Respostas

H

Como que você acessa o index?

E como que você está navegando?

J

CristianPalmaSola10:
Galera to desenvolvendo um projeto da facul,
tenho a seguinte estrutura de paginas xhtml dentro da pasta web-inf

paginas
—menu
-----menu.xhtml
—restrito
-----vozComandante.xhtml
index.xhtml

quando estou no index beleza renderiza normal mas quando navego para a area restrita a pagina naum renderiza e fica em branco, alguem sabe porque ?

Obrigado!

As vezes que isso aconteceu pra mim, foi quando estava usando a extensão do arquivo errada, ou configurado errado no web.xml

C

acesso o index assim::

http://localhost:8084/projeto-policia/faces/paginas/index.xhtml

e navego atraves de um menu

<p:menuitem value="Voz Comandante" url="/faces/paginas/restrito/vozComandante.xhtml" />

e a url fica assim

http://localhost:8084/projeto-policia/faces/paginas/restrito/vozComandante.xhtml

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>Production</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/paginas/index.xhtml</welcome-file>
    </welcome-file-list>
    <listener>
        <listener-class>com.policia.inicializa.InicializaApp</listener-class>
    </listener>
    
    <context-param>  
        <param-name>primefaces.THEME</param-name>  
        <param-value>bootstrap</param-value>  
    </context-param>
    
    <filter>
        <filter-name>FiltroLogin</filter-name>
        <filter-class>com.policia.filtro.FiltroLogin</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>FiltroLogin</filter-name>
        <url-pattern>/faces/paginas/restrito/*</url-pattern>
    </filter-mapping>
</web-app>
H

E como seu filter está redirecionando?

C
package com.policia.filtro;

import com.policia.entidade.Usuario;
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;

/**
 * @author Cristian Urbainski
 * @since 08/09/2012
 */
public class FiltroLogin implements Filter {

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

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        try {
            HttpServletRequest req = (HttpServletRequest) request;
            HttpServletResponse res = (HttpServletResponse) response;
            
            System.out.println(req.getSession().toString());
            
            Usuario user = (Usuario) req.getSession().getAttribute("user");
            
            if(user == null) {
                res.sendRedirect("/projetoPolicia/faces/paginas/login.xhtml");
            }
                
        } catch (Exception e) {
            System.err.println(e);
        }
    }

    @Override
    public void destroy() {
    }
    
}
H

Cara, eu diria que teu erro está aqui: res.sendRedirect("/projetoPolicia/faces/paginas/login.xhtml");

C

Mas o que estaria errado ?

Porque redireciona para o login e renderiza normalmente e depois de logado posso navegar nos paginas que esta no mesmo nivel tranquilamente, o problema de não renderiza acontece quando tendo acessar o nivel de cima, o restrito.

alguma ideia de como resolver ? valeu!

H

CristianPalmaSola10:
Mas o que estaria errado ?

Porque redireciona para o login e renderiza normalmente e depois de logado posso navegar nos paginas que esta no mesmo nivel tranquilamente, o problema de não renderiza acontece quando tendo acessar o nivel de cima, o restrito.

alguma ideia de como resolver ? valeu!

Eu faço como aqui: http://uaihebert.com/?p=1414&page=5

Eu não adiciono o nome do projeto no Filter.

C

Pois é mas o que acontece se eu tentar passar so “paginas/login.xhtml”

no navegador esta esta url

…/projetoPolicia/faces/paginas/restrito/vozComandante.xhtml e fazendo o redirect com “paginas/login.xhtml”

a url fica …/projetoPolicia/faces/paginas/restrito/paginas/login.xhtml e ai naum acha a pagina

H

CristianPalmaSola10:
Pois é mas o que acontece se eu tentar passar so “paginas/login.xhtml”

no navegador esta esta url

…/projetoPolicia/faces/paginas/restrito/vozComandante.xhtml e fazendo o redirect com “paginas/login.xhtml”

a url fica …/projetoPolicia/faces/paginas/restrito/paginas/login.xhtml e ai naum acha a pagina

E já tentou igual no post? Começando com / ?

C

se fazer assim

res.sendRedirect("/paginas/login.xhtml");

a url fica assim

http://localhost:8084/paginas/login.xhtml

H

CristianPalmaSola10:
se fazer assim

res.sendRedirect("/paginas/login.xhtml");

a url fica assim

http://localhost:8084/paginas/login.xhtml

Olha o exemplo lá no post mano…

RequestDispatcher rd = req.getRequestDispatcher("/pages/public/login.xhtml"); rd.forward(request, response);

H

Outra coisa, no post foi mapeado o xhtml para o JSF ser ativado.

No seu caso você colocou o faces. Toda URL/chamada sua tem que ter o faces.

C

Qual o problema de toda url ter o faces ?

H

CristianPalmaSola10:
Qual o problema de toda url ter o faces ?
Nenhum. O problema e configurar para usar o faces e passar esse valor na URL.

A

Fala garoto!!

Bom deixa teu filter mapping assim e executa, essa é a forma que mapeio com spring security, tenta lá!!!

<filter-mapping> <filter-name>FiltroLogin</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

C

se eu fizer no web.xml

/*

todas as paginas ficam totalmentes desconfiguradas, as imagens naum aparecem os componentes ficam gigantescos

C

o forward naum funcionou para redirecionar a pagina entaum mais alguma coisa que pode ser isso ?

A

ja tentou retirar o faces?

<filter-mapping> <filter-name>FiltroLogin</filter-name> <url-pattern>/paginas/restrito/*</url-pattern> </filter-mapping>

C

A pagina renderizou naum, corretamente mas renderizou so que o filtro parou de funcionar dai … e o que fazer ?

Criado 17 de setembro de 2012
Ultima resposta 17 de set. de 2012
Respostas 20
Participantes 4