Ajax for valueChangeListener

前端 未结 4 1860
礼貌的吻别
礼貌的吻别 2021-02-05 23:16

I\'m using the p:ajax listener to handle value change events (because valueChangeListener is launched on form submit):



        
4条回答
  •  旧巷少年郎
    2021-02-06 00:01

    The problem is, I can't find in AjaxBehaviorEvent nor its class hierarchy the place to read the old value of the input. Neither could I find hint in google, how to get the old value...

    Use a valueChangeListener.


    Unfortunatelly, valueChangeListener is invoked before p:ajax, so I don't have actual data from forms in that method, so in theory I could use valueChangeListener to remember the old value and then wait for p:ajax to process...

    Queue the value change event to the invoke application phase.

    public void valueChangeListenerMethod(ValueChangeEvent event) {
        if (event.getPhaseId() != PhaseId.INVOKE_APPLICATION) {
            event.setPhaseId(PhaseId.INVOKE_APPLICATION);
            event.queue();
            return;
        }
    
        // Do your original job here. 
        // It will only be invoked when current phase ID is INVOKE_APPLICATION.
    }
    

提交回复
热议问题