gpt4 book ai didi

java - 从静态资源(css、图像)中删除 MyFaces Orchestra 的 "conversationContext"GET 参数

转载 作者:搜寻专家 更新时间:2023-11-01 03:45:29 26 4
gpt4 key购买 nike

MyFaces Orchestra 将 ?conversationContext=x 添加到页面上的每个资源。由于我没有在我的项目的公共(public)部分(仅用于管理部分)使用对话范围,我想摆脱该参数有两个原因:

  • 它打破了静态资源的浏览器缓存
  • 它很丑:)

我现在要看一下 Orchestra 的源代码,也许会绕过一些东西,但最好有一个我不知道的选项

最佳答案

这个问题的答案很简单,同时也有一些解决方法。MyFaces 管弦乐队使用原始 HttpServletResponse 的包装器来对 contesationContext 参数进行编码。

使用 Orchestra 有两种选择 - 使用拦截器 (JSF) 和 Filter。它们都尝试包装响应,如果尚未包装。因此,如果管弦乐队 Filter 和拦截器都被使用,则 Filter 最先出现,包装响应对象,并在请求中设置一个属性,该属性指示拦截器,它不应该再次包装响应。

如果要添加 conversationContext,则可以配置 Filter 以匹配特定的 URL 模式。但是,对于我的需要,那个模式匹配器太简单了,所以我改用自己的过滤器。所以为了告诉拦截器不要包装响应,所有需要做的就是:

httpRequest.setAttribute(
RequestParameterServletFilter.REQUEST_PARAM_FILTER_CALLED,
Boolean.TRUE);

关于java - 从静态资源(css、图像)中删除 MyFaces Orchestra 的 "conversationContext"GET 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883048/

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