语义“?面临重定向=真正的”中 为什么不随处使用(Semantics of “?faces-r

2019-06-25 20:45发布

我想了解什么是后面追加的语义"?faces-redirect=true"在的action属性<h:commandlink>在JSF2.0标签。 无论是与它或它出来,应用程序的确导航到动作中指定的目标页面。 因此,在乍看之下,似乎是唯一的效果是化妆品,即提供反馈给用户(如果他正在看的网页浏览器访问的URL)他已搬到了新的一页。 但如果是这样无毒,副作用,无我看不出为什么它是不是默认的行为。 我怀疑它与JSF2.0的基于岗位的机制来做。 我通过对网址人们看到他的浏览器(当一个JSF应用程序在浏览时已经注意到?faces-redirect=true不使用)是‘前’,‘页面的次数。’

元NB。 我在防火墙后面,并与困扰“因此需要从另一个域外部JavaScript”的问题,所以我对于没有格式化的道歉。 我也将在几个小时内提供您的回答反馈意见,我可以从另一个域访问。

Answer 1:

页面到页面导航不应该使用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" />

这样做的主要好处是,网站现在搜索引擎友好的。 Searchbots即没有索引的形式。

使用<h:commandLink> 只有当你需要提交表单的一些用户输入。 但比通常更结果刚刚提出在同一个页面上,如果有条件necesary渲染/包括在内。 只有在这绝对需要去不同的页面(如登录/注销)成功屈服了,你确实应该发送重定向。 这就是所谓的后重定向消息获取模式 。

也可以看看

  • 如何在JSF导航? 如何使URL反映当前页面(而不是以前的一个)
  • 什么时候应该使用高:outputLink的,而不是H:commandLink?


文章来源: Semantics of “?faces-redirect=true” in and why not use it everywhere