地址栏不会使用p:command按钮进行更新以进行导航

时间:2013-01-30 15:25:10

标签: jsf-2 primefaces navigation

我使用<p:commandButton>进行导航并设置ajax="false",但地址栏不会更新以匹配action - 属性中定义的目标网页。它仍会显示带有<p:commandButton>的初始页面的地址 我发誓这并不总是那样。这种行为是否正常? 如何使用<p:commandButton>进行导航来解决此问题?

我的代码:

<p:commandButton value="speichern" action="secondPage" ajax="false"/>

1 个答案:

答案 0 :(得分:1)

是的,如果您触发POST请求,这是正常行为。由<form action>生成的<h:form>默认为当前网址(右键单击,浏览器中的查看源以自行查看)。确切地说,此URL会反映在浏览器地址栏中。如果要在POST后更改它,则需要在之后发送重定向。重定向基本上指示客户端在给定的URL上发送新的GET请求。这将反映在浏览器地址栏中。这可以通过将faces-redirect=true查询字符串参数添加到结果值来完成。

<p:commandButton value="speichern" action="secondPage?faces-redirect=true" ajax="false"/>

但是,使用POST进行导航对UXSEO不利。只需在第一时间使用GET。

<p:button value="speichern" outcome="secondPage"/>

另见: