当前位置: 首页 > 面试题库 >

在JSF bean中获取请求URL?

闻人冷勋
2023-03-14
问题内容

如何在支持JSF页面的bean中获得请求URL?我一直在浏览FacesContext文档,发现的最佳方法似乎很长:

public String getRequestURL()
{
    Object request = FacesContext.getCurrentInstance().getExternalContext().getRequest();
    if(request instanceof HttpServletRequest)
    {
            return ((HttpServletRequest) request).getRequestURL().toString();
    }else
    {
        return "";
    }
}

编辑:功能要求
这里的要求是我们需要第三方javascript实用程序的完整URL。该实用程序的使用或体系结构不适用于JSF,但除此调用外的所有内容都适用。我发现的方法可以用,但是深入研究FacesContext感觉不对。另外,我希望可以使用JSF表达式语言调用此方法,因为它将以与“视图”相关的方式使用。


问题答案:

如果您需要通过来从JSF引擎下拖出原始Servlet API
FacesContext,那么很可能您在错误的地方进行了这项工作。这是什么,您认为这是正确的解决方案的功能要求?您是否应该不使用真实的Servlet类或FilterJSF托管bean?也许您根本不需要请求URL,因为有更好的“
jsfish”方法来实现相同目的?

如果您更新问题以包含有关功能要求的详细信息,那么我们也许可以提出正确的解决方案。

*根据您的编辑进行 *更新
:那么,您毕竟只是在视图方面需要它?例如#{bean.requestURL}?您也可以从HttpServletRequestEL中已经隐式可用的对象中获取它。

使用JSP时:

${pageContext.request.requestURL}

或在使用Facelets时:

#{request.requestURL}

现在,您对JavaScript有何需求?打印为JavaScript变量?这样吗

var url = '#{request.requestURL}';

如果是这样,您也可以window.location争取。

var url = window.location;

无需将JSF bean与视图特定的细节弄混。



 类似资料:
  • 我用的是Spring靴。我已经为SOAP web服务编写了一个ClientInterceptor,我想记录我要向其发送请求的URL,并且我想在HandlerResponse方法中这样做。然而,我找不到一个方法来做到这一点。有可能吗?任何帮助都会很好。 创建restTemplate的方式

  • 我需要帮助发送请求到FTP服务器下载文件...我已经写了下面的代码下载一个文件使用HTTP它工作成功,但我不知道如何做一个FTP.....由于我已经使用套接字来建立连接,它必须通过这种方式来完成,请建议我下载一个FTP文件的请求(发送到服务器)的格式是什么...... ///////////////编码////////////////////////////////////////////////

  • 问题内容: 如何在Scrapy 函数中获取请求网址?我有很多网址,其中一些将我的蜘蛛重定向到主页,结果我有一个空项目。所以我需要一些类似的东西来存储这些URL。我正在使用BaseSpider。 问题答案: 传递给parse()的’response’变量具有所需的信息。你不需要覆盖任何内容。 例如。(编辑)

  • 问题内容: 如何在Jinja2模板中检索请求参数? 问题答案: 我对这个答案有些迟,但是其他解决方案并不能真正解决你使用Flask的问题。 将Flask与Jinja2一起使用的事实使你的情况与其他框架有所不同。Flask实际上使所有Jinja2模板中都可以使用一些全局变量,而无需你将它们显式传递给模板。 在http://flask.pocoo.org/docs/templating/#standa

  • 我正在构建一个Java的grpc服务器,我很难得到请求头。proto文件是使用Pro buf-maven-plugin编译的,基于生成的存根,我无法访问上下文或请求元数据。 我还尝试在消息请求中定义一个键/值列表,希望grpc能够处理头映射,但目前为止没有成功。 知道我怎么能拿到标题吗? 谢谢 我的原型文件内容: 服务器端实现如下所示: 版本请求。getHeadersCount()始终返回0,尽管

  • 在 Nginx 的典型应用场景中,几乎都是只读取 HTTP 头即可,例如负载均衡、正反向代理等场景。但是对于 API Server 或者 Web Application ,对 body 可以说就比较敏感了。由于 OpenResty 基于 Nginx ,所以天然的对请求 body 的读取细节与其他成熟 Web 框架有些不同。 最简单的 “Hello ****” 我们先来构造最简单的一个请求,POST