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!
Como que você acessa o index?
E como que você está navegando?
jeffev
Setembro 17, 2012, 11:46am
#3
[quote=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![/quote]
As vezes que isso aconteceu pra mim, foi quando estava usando a extensão do arquivo errada, ou configurado errado no web.xml
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>
E como seu filter está redirecionando?
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() {
}
}
Cara, eu diria que teu erro está aqui: res.sendRedirect("/projetoPolicia/faces/paginas/login.xhtml");
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!
[quote=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![/quote]Eu faço como aqui: http://uaihebert.com/?p=1414&page=5
Eu não adiciono o nome do projeto no Filter.
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
[quote=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[/quote]E já tentou igual no post? Começando com / ?
se fazer assim
res.sendRedirect("/paginas/login.xhtml");
a url fica assim
http://localhost:8084/paginas/login.xhtml
[quote=CristianPalmaSola10]se fazer assim
res.sendRedirect("/paginas/login.xhtml");
a url fica assim
http://localhost:8084/paginas/login.xhtml[/quote]Olha o exemplo lá no post mano…
RequestDispatcher rd = req.getRequestDispatcher("/pages/public/login.xhtml");
rd.forward(request, response);
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.
Qual o problema de toda url ter o faces ?
[quote=CristianPalmaSola10]Qual o problema de toda url ter o faces ?[/quote]Nenhum. O problema e configurar para usar o faces e passar esse valor na URL.
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>
se eu fizer no web.xml
/*
todas as paginas ficam totalmentes desconfiguradas, as imagens naum aparecem os componentes ficam gigantescos
o forward naum funcionou para redirecionar a pagina entaum mais alguma coisa que pode ser isso ?
ja tentou retirar o faces?
<filter-mapping>
<filter-name>FiltroLogin</filter-name>
<url-pattern>/paginas/restrito/*</url-pattern>
</filter-mapping>