gpt4 book ai didi

jsf - 使用 PrettyFaces 获取原始请求 URI

转载 作者:行者123 更新时间:2023-12-04 11:29:14 25 4
gpt4 key购买 nike

我在我的 JSF 应用程序中使用 PrettyFaces。该站点需要身份验证才能访问某些页面,因此我使用了一个监听器(预渲染 View )来检查用户是否已登录。因此,如果用户尝试访问/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();

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

最佳答案

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

所以,这应该做:

String originalURI = (String) externalContext.getRequestMap().get(RequestDispatcher.FORWARD_REQUEST_URI);
// ...

关于jsf - 使用 PrettyFaces 获取原始请求 URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7738876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com