【问题标题】:how to include only part of request params into url?如何仅将部分请求参数包含到 url 中?
【发布时间】:2013-08-08 15:42:57
【问题描述】:

我通过 h:link 传递 2 个参数,如下所示:

<h:link outcome="index" value="index" >
   <f:param name="a" value="#{bean.a}"  />
   <f:param name="b" value="#{bean.b}"  />
</h:link>

在这种情况下,两个参数都显示在 url 中。我怎样才能实现只有参数a 而不是b 显示在网址中? 谢谢

【问题讨论】:

  • 只删除&lt;f:param&gt; for b?
  • 正如我在下面写的,我也需要参数b。我得试试别的。我在f:param 中缺少一个属性includeViewParams。这可能是解决方案。谢谢
  • 如果你用低级别的 HTTP 术语详细说明你到底想要什么会更有帮助,然后我们可以告诉你如何在 JSF 中实现这一点。到目前为止,您似乎只是在寻求不可能,因为您不熟悉基本的 HTTP。
  • 我将链接用作位置详细信息页面的可收藏网址。这些链接在搜索页面中显示为结果列表。如果您从该页面单击它,您将获得详细页面中显示的位置和目标地址的距离。这就是为什么我需要第二个参数。
  • 您目前的代码已经完全实现了这一点。

标签: jsf-2 http-request-parameters


【解决方案1】:

如果您只想在 url 中显示一个参数,则只需传递一个。因为它是一个GET 请求(因为它是一个链接),所以你不能限制参数在url中显示

<h:link outcome="index" value="index" >
   <f:param name="a" value="#{bean.a}"  />
</h:link>

【讨论】:

  • 我需要传递另一个参数,我在 PreRenderViewEvent 的支持 bean 方法中使用它。那么没有在url中显示就没有办法通过了吗?
【解决方案2】:

如果您不需要在 URL 中显示您的参数,则使用另一种方法而不是 f:param 方法来保存它,例如将其保存在 Flash 范围内,然后在托管 bean 中恢复它

【讨论】:

  • 以前从未听说过闪光范围!
猜你喜欢
  • 2020-12-04
  • 2012-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-05
相关资源
最近更新 更多