【问题标题】:JSF onevent or js depending on ajax listener resultJSF onevent 或 js 取决于 ajax 监听器结果
【发布时间】:2014-02-06 14:42:03
【问题描述】:

我需要解决下一个情况的想法。

我有一个带有 ajax 的 commandButton,它使用布尔方法调用侦听器,如下所示:

<h:commandButton value="Add">
    <f:ajax listener="#{shoppingCartBean.makeReservation(devicesBean.device)}" />
</h:commandButton>

如果侦听器返回 true,则因为设备已正确保留,一切正常,我需要使用 location.href js 函数重定向到另一个 url。

如果监听器返回 false,我需要一个 js 警报显示“抱歉,没有设备库存 bla bla bla”。

我该如何管理?提前谢谢。

【问题讨论】:

    标签: javascript ajax jsf listener


    【解决方案1】:

    你可以使用JQuery:

    <h:commandButton id="someId" action="#{myBean.myAction}">
           <f:ajax onevent="myJsFunction"   render="whatevet"></f:ajax>
    </h:commandButton>
    function myJsFunction(data) {
       if (data.status === 'success') {
         alert('complete');
       }
    }
    

    更多详情,请看这条赛道https://stackoverflow.com/a/15806084/3056912

    【讨论】:

    • 但问题是 js 函数需要监听器(在我的情况下)或动作(在你的情况下)布尔结果才能知道要做什么......我不知道你是否明白我的意思意思是。在您的示例中,如果 myBean.myAction 返回 true,则 myJsFunction 需要此结果来提醒或执行其他操作...
    • 嗯,你为什么不使用导航规则?如果为真,您将进行重定向。如果不是,则设置一个布尔值并根据布尔值重新呈现弹出组件...
    • 由于漂亮的面孔,我需要使用 URL 重定向而不是 xhtml 资源......但是谢谢。
    • hmmm :/ 如果你使用 primefaces,你可以使用 onComplete。 &lt;p:commandButton value="Save" actionListener="#{userController.saveUser}" oncomplete="handleComplete(xhr, status, args)" /&gt;
    • 呵呵,我认为你没有正确阅读它,不是素数,漂亮的面孔,对于 url :)
    猜你喜欢
    • 2011-06-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    相关资源
    最近更新 更多