【问题标题】:Cancel button navigation in JSFJSF 中的取消按钮导航
【发布时间】:2012-04-15 20:48:13
【问题描述】:

我在页面上有一个取消按钮。 但是这个页面可以从不同的地方打开。我的意思是父页面可能会有所不同。

现在,通过单击取消按钮,我需要返回到我原来的页面 - 例如 history.back()

我们如何在 JSF 中实现它?

有人可以指导我吗?

history.back() 直接不起作用。

<h:commandButton type="button" id="cancel" image="#{sessionScope.sessionObject.graphicImageFolderName}cancel_btn.gif" accesskey="#{bundle.oscer_command_cancel_accesskey}" value="Cancel" action="#{templatePrescriptionMaintenanceBackingBean.goBack}" />

如果是history.back(),我正在制作与...相同的按钮。

<h:commandButton type="button" id="cancel" image="#{sessionScope.sessionObject.graphicImageFolderName}cancel_btn.gif" accesskey="#{bundle.oscer_command_cancel_accesskey}" value="Cancel" onclick="javascript: history.back();"/>

这两种情况有什么问题吗?

【问题讨论】:

    标签: java jsf navigation


    【解决方案1】:

    试试

    <h:commandLink onclick="history.go(-1); return false;">
    

    或者

    <h:commandButton onclick="history.back(); return false;">
    

    为你工作?

    【讨论】:

    • 谢谢丹尼尔,我做了 这对我有用。非常感谢。你太棒了。
    • @Daniel 这种方法有问题。假设在页面 A 上单击提交然后页面 B 现在打开,如果您在页面 B 上单击取消页面 A 将会出现。现在这是一个转折点,如果您尝试在页面 A 上取消,它将打开页面 B。
    • @AjaySharma ,我猜除了我的之外还有其他解决方案
    【解决方案2】:

    通过Application.getNavigationHandler 获取默认导航处理程序。将其包装在reflection proxy 中,并通过Application.setNavigationHandler 将代理设置为新的默认导航处理程序。在代理的调用处理程序中,您可以跟踪所有导航事件及其结果,并以此构建您自己的历史记录。然后使用此历史记录来处理“取消”按钮的导航,方法是返回您的历史记录。

    【讨论】:

    • 感谢 Sylar,您的回答非常笼统。还没试过。但肯定会尝试。非常感谢。你太棒了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多