首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PrettyFaces获取原始请求URI

使用PrettyFaces获取原始请求URI
EN

Stack Overflow用户
提问于 2011-10-12 18:47:32
回答 2查看 2.2K关注 0票数 8

我在我的JSF应用程序中使用PrettyFaces。该站点需要身份验证才能访问某些页面,因此我使用了一个侦听器(prerender view)来检查用户是否已登录。因此,如果用户尝试访问/foo (在PrettyFaces之前使用/foo.jsf),我将重定向到/login。

但是,我想将它们重定向到它们的初始目的地,所以我想附加一个请求参数"next“,以便将用户重定向到/login?next=/foo。不幸的是,我无法从请求对象中获得原始requestURI,以下代码中的uri字符串是/appname/foo.jsf而不是/appname/foo

代码语言:javascript
复制
ctx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) ctx.getRequest();
String uri = request.getRequestURI();

有没有办法检索原始URI路径?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-12 21:03:54

PrettyFaces在幕后使用RequestDispatcher#forward()将漂亮的URL转发到真正的URL。使用此技术,原始请求URI可用作具有键RequestDispatcher#FORWARD_REQUEST_URI的请求属性。

因此,这应该可以做到:

代码语言:javascript
复制
String originalURI = (String) externalContext.getRequestMap().get(RequestDispatcher.FORWARD_REQUEST_URI);
// ...
票数 7
EN

Stack Overflow用户

发布于 2013-11-14 21:00:15

使用以下代码获取原始请求URL:

PrettyContext.getCurrentInstance().getRequestUrl().toURL()

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7738876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档