ust*_*tun 7 jsf java-ee prettyfaces
我在JSF应用程序中使用PrettyFaces.该站点需要身份验证才能访问某些页面,因此我正在使用一个侦听器(预呈现视图)来检查用户是否已登录.因此,如果用户尝试访问/ foo(在PrettyFaces之前的/foo.jsf),我会重定向登录.
但是,我想将它们重定向到它们的初始目的地,所以我想附加一个请求参数"next",以便我将用户重定向到/ login?next =/foo.不幸的是,我无法从请求对象获取原始requestURI,以下代码中的uri字符串是/appname/foo.jsf而不是/ appname/foo
ctx = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) ctx.getRequest();
String uri = request.getRequestURI();
Run Code Online (Sandbox Code Playgroud)
有没有办法检索原始URI路径?
PrettyFaces使用封面RequestDispatcher#forward()将漂亮的URL转发到真实的URL.使用此技术,原始请求URI可用作具有密钥的请求属性RequestDispatcher#FORWARD_REQUEST_URI.
所以,这应该做:
String originalURI = (String) externalContext.getRequestMap().get(RequestDispatcher.FORWARD_REQUEST_URI);
// ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |