How to use EL in PrimeFaces oncomplete attribute which is updated during action method

前端 未结 1 649
情歌与酒
情歌与酒 2021-01-06 10:41

This is code:

 
         


        
1条回答
  •  再見小時候
    2021-01-06 11:15

    PrimeFaces doesn't support it. Any EL expressions in oncomplete attribute are immediately evaluated during render response of that HTML document, not during oncomplete of the associated ajax call. Basically, the JavaScript code generated by oncomplete attribute contains the old value as it was during the page load.

    Your best bet is using RequestContext#addCallbackParam() to add a property to the PrimeFaces-specific args object which is available in oncomplete scope.

    RequestContext.getCurrentInstance().addCallbackParam("result", eventResized.getId() == 0);
    
    
    

    An alternative is to use RequestContext#execute() instead of oncomplete to programmatically instruct PrimeFaces to execute a piece of JavaScript on complete of the ajax request.

    RequestContext.getCurrentInstance().execute("resizeComplete(" + (eventResized.getId() == 0) + ")");
    

    0 讨论(0)
提交回复
热议问题