我想了解什么是后面追加的语义"?faces-redirect=true"
在的action属性<h:commandlink>
在JSF2.0标签。 无论是与它或它出来,应用程序的确导航到动作中指定的目标页面。 因此,在乍看之下,似乎是唯一的效果是化妆品,即提供反馈给用户(如果他正在看的网页浏览器访问的URL)他已搬到了新的一页。 但如果是这样无毒,副作用,无我看不出为什么它是不是默认的行为。 我怀疑它与JSF2.0的基于岗位的机制来做。 我通过对网址人们看到他的浏览器(当一个JSF应用程序在浏览时已经注意到?faces-redirect=true
不使用)是‘前’,‘页面的次数。’
元NB。 我在防火墙后面,并与困扰“因此需要从另一个域外部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" />
这样做的主要好处是,网站现在搜索引擎友好的。 Searchbots即没有索引的形式。
使用<h:commandLink>
只有当你需要提交表单的一些用户输入。 但比通常更结果刚刚提出在同一个页面上,如果有条件necesary渲染/包括在内。 只有在这绝对需要去不同的页面(如登录/注销)成功屈服了,你确实应该发送重定向。 这就是所谓的后重定向消息获取模式 。
也可以看看
- 如何在JSF导航? 如何使URL反映当前页面(而不是以前的一个)
- 什么时候应该使用高:outputLink的,而不是H:commandLink?