在jsf中丢失请求参数以进行第二次ajax轮询调用

时间:2017-08-02 06:25:35

标签: ajax jsf datatable

我遇到轮询请求问题,第一次调用正常,第二次调用失去请求参数。以下是代码:

<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秒时,我看不到内容,而且我得到了#34;没有统计数据&#34;在给定条件下找到,因为参数为空。

你能帮我理解问题所在吗?

1 个答案:

答案 0 :(得分:0)

这是我在审核一些建议的链接后修复的方法

添加到bean:

@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)}"

现在一切正常

感谢