Olá a todos,
Gostaria de desenvolver um filtro, todavia o jsf funciona por default em post, logo sempre que tento pegar a url que o usuario está indo, somente consigo a página que o usuario estava.
Existe algum modo de conseguir tomar a url da página que usuario esta indo???
Sei que atraves do método get é possível, mas gostaria de saber se há como construir um filtro e tomar a url que o usuario esta indo.
Sim isso realmente vai funcionar, pois esta usando redirect a url da página realmente vai ser a do destino e no filtro conseguirei recuperá-la.
O problema desta abordagemé que se eu tiver um bean com o escopo @Request eu irei perder ele, logo teria que guardar ele em flash e fazer outros tratamentos.
Logo eu gostaria de saber se há algum jeito de conseguir a url de para onde o usuario esta indo seja em um filtro ou em um phase listener? Alguem sabe? Ou se é possivel fazê-lo?
[]s
Daniel_T_S
ATEN:
Daniel T.S:
Tenta fazer assim:
Coloca isso “?faces-redirect=true” toda vez que for redirecionar o usuário e faz o filtro normalmente.
Sim isso realmente vai funcionar, pois esta usando redirect a url da página realmente vai ser a do destino e no filtro conseguirei recuperá-la.
O problema desta abordagemé que se eu tiver um bean com o escopo @Request eu irei perder ele, logo teria que guardar ele em flash e fazer outros tratamentos.
Logo eu gostaria de saber se há algum jeito de conseguir a url de para onde o usuario esta indo seja em um filtro ou em um phase listener? Alguem sabe? Ou se é possivel fazê-lo?
[]s
Acabei de tentar recuperar a url que o usuário está indo com um filtro utilizei um Bean com o escopo @Request e deu certo
Sim como eu disse poderia fazer um filtro desta maneira ou fazer um Phase Listener e tomar a url, mas como disse jsf trabalha por default por metodo Post, logo eu nao teria como saber qual página que o usuario iria, pois a url nao muda. Alguem sabe se existe algum método ou alguma maneira para saber onde o usuario esta indo?
@OverridepublicvoiddoFilter(ServletRequestservletRequest,ServletResponseservletResponse,FilterChainchain){// Tudo acima acontece antes de carregar a página chain.doFilter(servletRequest,servletResponse);//Tudo abaixo acontece depois de carregar a página HttpServletRequestres=(HttpServletRequest)request;HttpServletResponserespo=(HttpServletResponse)response;Stringurl=res.getServletPath();// URL obtida é da pagina que usuario estava, como conseguir a url que o usuario esta indo????}
Daniel_T_S
Cara quando eu executo isso recebo a url solicita e não a url que o usuário estava.
ATEN
Daniel T.S:
Cara quando eu executo isso recebo a url solicita e não a url que o usuário estava.
Daniel T.S, vc fez um form desta maneira :
Exemplo:
XHTML com um form, apenas para apertar no botao e ser redirecionado para outra pagina
Ao apertar no botao de login, será recuperado a url da página de login: “/publico/login.jsf”, quando na verdade o usuario estará na pagina “/publico/contato.jsf”.
Há alguma maneira de tomar esta url. Caso seja colocado redirect na url, é claro que aparecerá no filtro a url que o usuario foi, mas sem redirect, há como conseguir a url que o usuario foi?
é claro que apertar em um link, no filtro aparecerá a url que o usuario foi, mas em um form o metodo sendo post e sem redirect há como saber a url que o usuario foi no filtro?
[]s
Daniel_T_S
Só pra ter certeza se eu entendi nesse caso você deseja recuperar no filtro a url “/publico/contato.jsf” e não “/publico/login.jsf” é isso?
ATEN
Sim, isso mesmo, eu quero saber onde o usuario está indo, imagine se quisesse impedir de acessar alguma página, isto nao seria possivel desta maneira.
Daniel_T_S
Sim, isso mesmo, eu quero saber onde o usuario está indo, imagine se quisesse impedir de acessar alguma página, isto nao seria possivel desta maneira.
Então cara é isso mesmo. Eu fiz um exemplo desse, e aconteceu exatamente o que você deseja foi impresso “/publico/contato.jsf” no filtro.
Olha só eu estou viajando mas quando chegar em casa vou postar um exemplo pra você vê se é isso, ok?