JSF后退/前进按钮和Ajax

JSF后退/前进按钮和Ajax,ajax,jsf,Ajax,Jsf,希望有人能向我解释一些行为。我有一个带有数据表和复选框的JSF页面。我有一个Primefaces命令按钮,它执行一些操作,然后通过ajax重新呈现表。这一切都像预期的那样工作,但我有一个问题。当我单击后退按钮,然后单击前进按钮时,datatable页面将在其预ajax状态下重新显示。从firebug中,我可以看到一个新的Post请求正在转发页面上发送。我需要转发来显示页面post ajax。如果你看Primefaces的展示,这是我想要的。在复选框表中,如果单击几个复选框,然后单击“查看”,将弹

希望有人能向我解释一些行为。我有一个带有数据表和复选框的JSF页面。我有一个Primefaces命令按钮,它执行一些操作,然后通过ajax重新呈现表。这一切都像预期的那样工作,但我有一个问题。当我单击后退按钮,然后单击前进按钮时,datatable页面将在其预ajax状态下重新显示。从firebug中,我可以看到一个新的Post请求正在转发页面上发送。我需要转发来显示页面post ajax。如果你看Primefaces的展示,这是我想要的。在复选框表中,如果单击几个复选框,然后单击“查看”,将弹出一个对话框。现在单击“后退”和“前进”,页面与您离开时的页面相同。转发页面上没有发送其他post/get请求


你知道Primefaces是如何做到这一点的吗?

Primefaces没有做到这一点。这是你的浏览器在做的。您的浏览器在GET请求上显然具有相对更高的缓存设置。尝试使用不同的浏览器,如Chrome,您将看到无法复制相同的浏览器


这是你无法控制的。您最多可以使用GET导航替换Web应用程序上的帖子导航。

好的,谢谢。刚刚在IE和Chrome上测试,结果不同。我很好奇为什么在FF中,我的应用程序的行为与Primefaces不同。有趣的是,当我重新提交前ajax页面时,我得到了后ajax页面,而我的backingbean方法从未运行过。有什么想法吗?如前所述,FF的藏书量很大。也许是为了让自己看起来是“最快”的浏览器。你2007年关于PGR的文章仍然是最好的方法吗?它是JSF1.x的目标。不要在JSF2.x中使用它。在JSF2.x中,您只需执行
返回“nextpage?faces redirect=true”并使用Flash发送消息。感谢您的帮助。我会玩一玩的。