gpt4 book ai didi

jsf - 中 "?faces-redirect=true"的语义以及为什么不在任何地方使用它

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

我想了解附加 "?faces-redirect=true" 背后的语义是什么在 <h:commandlink> 的 action 属性中JSF2.0 中的标签。无论有没有它,应用程序确实导航到操作中指定的目标页面。所以乍一看似乎唯一的效果是装饰性的,即向用户提供反馈(如果他正在查看浏览器访问过的 URL)他已经移动到一个新页面。但是,如果它如此无害且无副作用,我不明白为什么它不是默认行为。我怀疑这与JSF2.0的基于post的机制有关。我注意到在浏览 JSF 应用程序时,人们在浏览器上看到的 URL(当 ?faces-redirect=true 未使用时)是“上一个”“页面”的 URL。

元-NB。我在防火墙后面并且受到“SO 需要来自另一个域的外部 JavaScript”问题的困扰,所以我为没有格式化而道歉。当我可以从另一个域访问时,我还将在几个小时内提供有关您的答案的反馈。

最佳答案

根本不应使用 POST 执行页面到页面导航。您应该使用正常 <h:link><h:button>为此而不是 <h:commandLink><h:commandButton> .
所以代替

<h:commandLink value="Next page" action=nextpage.xhtml?faces-redirect=true" />
你实际上应该使用
<h:link value="Next page" outcome="nextpage.xhtml" />
这有一个主要好处,即该网站现在对 SEO 友好。 Searchbots 即不索引表单。
使用 <h:commandLink> 只有如果您需要提交带有一些用户输入的表单。但是,如果需要有条件地呈现/包含,结果通常只会出现在同一页面中。只有在绝对需要转到不同页面(例如登录/注销)的成功提交时,您才确实应该发送重定向。这就是所谓的 Post-Redirect-Get pattern .
也可以看看
  • How to navigate in JSF? How to make URL reflect current page (and not previous one)
  • When should I use h:outputLink instead of h:commandLink?
  • 关于jsf - <commandlink action=...> 中 "?faces-redirect=true"的语义以及为什么不在任何地方使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11242240/

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