2017-08-02 58 views
0

我面臨輪詢請求的問題,第一個呼叫是好的,第二個是丟失請求參數。下面是代碼:在jsf中丟失第二個Ajax輪詢呼叫的請求參數

<h:form id="form"> 

    <p:poll interval="10" listener="${emsstatbean.getEmsStat_list(request.getParameter('para'))}" update="emstatTable" /> 
    <p:dataTable id="emstatTable" var="emsstat" value="${emsstatbean.getEmsStat_list(request.getParameter('para'))}" emptyMessage="No statistic found with given criteria" styleClass="table table-striped table-bordered table-hover" > 

    <p:column headerText="Server Hostname" > 
     <h:outputText value="#{emsstat.id.timeStamp}" /> 
    </p:column> 

    <p:column headerText="Os name" > 
     <h:outputText value="#{emsstat.upTime}" /> 
    </p:column>   

    <p:column headerText="Os name" > 
     <h:outputText value="${emsstat.state}" /> 
    </p:column>   

    </p:dataTable> 
</h:form>          

,這是bean類:

@ManagedBean(name = "emsstatbean") 
public class EmsStatBean implements Serializable 
{ 

    public List<TibcoEmsStat> getEmsStat_list(int p) 
    { 
     return service.listEmsStats(p); 
    } 

    @ManagedProperty("#{emsStatService}") 
    EmsStatService service; 

    @PostConstruct 
    public void init() 
    { 
    } 

    public void setService(EmsStatService service) 
    { 
     this.service = service; 
    } 
} 

這就是所謂的網址:content/public/TibcoEmsStat.xhtml?para=254 所以,當我粘貼在瀏覽器上我得到的數據表與所有行,但是當我等待10秒時,我看不到內容,並且在給定條件下找到「無統計數據」,因爲參數爲空。

你能幫我理解問題出在哪裏嗎?

+0

的可能的複製[JSF形式保留GET請求的查詢字符串參數提交(https://stackoverflow.com/questions/17734230/retaining-get-request-query -string-parameters-on-jsf-form-submit) – Kukeltje

+0

它很可能已經在第一次ajax調用中失去它了。你真正適合的調用不是ajax調用,而是一個普通的GET – Kukeltje

+0

@Kukeltje我明白了,但我需要刷新一個對象而不做GET,我該如何實現,所以在這種情況下,我可以保存para值是一些變量。謝謝您的幫助 –

回答

0

這是我的固定審查一些建議的鏈接

加入豆後:

@ViewScoped

和可變的id

public int ems_inst; 

public int getEms_inst() { 
    return ems_inst; 
} 

public void setEms_inst(int ems_inst) { 
    this.ems_inst = ems_inst; 
} 

存儲在XHTML我做了:

<f:metadata> 
<f:viewParam name="ems_inst" value="#{emsstatbean.ems_inst}" /> 
</f:metadata> 
      <h:form id="form"> 

<p:poll interval="10" 
    listener="${emsstatbean.getEmsStat_list(emsstatbean.ems_inst)}" update="emstatTable" /> 
<p:dataTable id="emstatTable" var="emsstat" value="${emsstatbean.getEmsStat_list(emsstatbean.ems_inst)}" 

現在都工作正常

感謝