2014-10-06 2 views
0

리스너 메소드가 실행 된 후 onstart가 호출되는 이유는 무엇입니까? 리스너 메소드가 실행되기 전에 onstart 메소드를 호출하려면 어떻게해야합니까? jsf 2.1 및 primefaces 4.0 사용.리스너 메소드가 실행 된 후 Onstart가 호출됩니다.

<p:ajax event="eventMove" listener="#{myBean.onEventMove}" 
    update="mygrwlmsg" onstart="setLStorageDateToBean();" 
    oncomplete="if(args.facesMessagesAvailable){handleEditEventRequest(args.eventList);scheduleWidget.update();}" /> 

가 remoteCommand

를 통해 빈 메소드를 호출
function setLStorageDateToBean() 
{ 
    if(typeof(Storage)!=='undefined') 
    { 
     if((localStorage.startDate || localStorage.getItem('startDate') != null) 
      &amp;&amp; (localStorage.endDate || localStorage.getItem('endDate') != null)) 
     { 
      var sDate = parseInt((localStorage.startDate)/1000); 
      var eDate = parseInt((localStorage.endDate)/1000); 
      var lCalRefresh = parseInt((localStorage.lastCalRefresh)/1000); 

      setLocalStorageDate([{name:'startDate',value:sDate},{name:'endDate',value:eDate},{name:'lastCalRefresh',value:lCalRefresh}]);    
     } 
    } 
} 

<p:remoteCommand name="setLocalStorageDate" actionListener="#{myBean.setDateFromLocaStorage}" > 
</p:remoteCommand> 

콩 방법

public void setDateFromLocaStorage() 
{ 
    int startDate = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("startDate")); 
    int endDate = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("endDate")); 
    int lCalRefresh = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("lastCalRefresh")); 

    setlStorStartDate(startDate); 
    setlStorEndDate(endDate); 
    setlStorLastRefresh(lCalRefresh);  
} 
+0

을 만들어 생성? –

답변

3

해결책을 발견. 는 아약스 (리스너를 제거)

<p:ajax event="eventMove" 
    update="mygrwlmsg" onstart="callOnAjax();" 
    oncomplete="if(args.facesMessagesAvailable)handleEditEventRequest(args.eventList); 
    scheduleWidget.update();}" /> 

을 수정하여 새로운 remoteCommand 구성 요소

<p:remoteCommand name="myListener" actionListener="#{myBean.onEventMove}"> 
</p:remoteCommand> 

가 setLStorageDateToBean() 메소드의 새로운 기능 새로운 자바 스크립트 함수

function callOnAjax(){ 
    setDateFromLocaStorage(); 
    myListener(); 
} 
관련 문제