我使用<p:commandButton>
进行导航并设置ajax="false"
,但地址栏不会更新以匹配action
- 属性中定义的目标网页。它仍会显示带有<p:commandButton>
的初始页面的地址
我发誓这并不总是那样。这种行为是否正常?
如何使用<p:commandButton>
进行导航来解决此问题?
我的代码:
<p:commandButton value="speichern" action="secondPage" ajax="false"/>
答案 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进行导航对UX和SEO不利。只需在第一时间使用GET。
<p:button value="speichern" outcome="secondPage"/>