如何实现一个通用的命令按钮作为“后退”按钮?这里的“后退”不是指浏览器的后退按钮,而是指页面上某个位置的按钮。有时候无法使用 Post-redirect-get 模式。
在每个需要指向的页面传递信息是相当不切实际的。
是否有一种保留关键字,可以将导航规则指向最后应用的导航规则?
如何实现一个通用的命令按钮作为“后退”按钮?这里的“后退”不是指浏览器的后退按钮,而是指页面上某个位置的按钮。有时候无法使用 Post-redirect-get 模式。
在每个需要指向的页面传递信息是相当不切实际的。
是否有一种保留关键字,可以将导航规则指向最后应用的导航规则?
在这种情况下,我使用带有属性 onclick="history.go(-1)"
的 h:commandLink
。它的作用是普适的。
您可以使用:
<p:commandButton onclick="window.history.back();"/>
onclick="history.go(-1)"
相同。p:button
或在其中添加'type="button"'。请参阅PrimeFaces文档! - KukeltjeMy first idea :
on every
<h:commandLink .....>
等等,存储导航字符串在bean中,或者甚至是栈中,然后返回按钮可以检索它并按照faces-config.xml返回它。
第二个想法。
但仔细思考后,您应该覆盖或使用过滤器拦截导航命令并将它们推送到堆栈上。然后,返回按钮只需弹出导航,然后就可以继续了。
我会把导航字符串存储在一个栈数据类型中,您可以使用stack.peek()来显示您后面的站点,并且当它被点击时,会触发一个动作事件,从而触发stack.pop()
<p:commandButton value="Previous" id="PreviousOffer" onclick="window.history.go(-1);return false;"/>
附言:当我没有使用return false;
并且点击了上一个按钮时,它仅停留在当前页面。但是,在添加return false
之后,它开始工作。
type="button"
添加到其中,这样就不需要返回 false 了。 - Kukeltje
onclick="history.go(-1);return false;"
来防止原始页面提交。 - K.Nicholas