Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf p:dataTable未找到任何记录_Jsf_Primefaces_Datatable_Jsf 2.2 - Fatal编程技术网

Jsf p:dataTable未找到任何记录

Jsf p:dataTable未找到任何记录,jsf,primefaces,datatable,jsf-2.2,Jsf,Primefaces,Datatable,Jsf 2.2,我在对话框中有一个数据表 当用户单击详细信息链接时,应显示带有数据表的对话框 代码如下: <h:form> <h:dataTable value="#{messageBean.messagesList}" var="msg"> <h:column> <f:facet name="header">Detail</f:facet> <p:commandLink action="#{messageBean.f

我在对话框中有一个数据表

当用户单击详细信息链接时,应显示带有数据表的对话框

代码如下:

<h:form>
   <h:dataTable value="#{messageBean.messagesList}" var="msg">

<h:column>
     <f:facet name="header">Detail</f:facet>
     <p:commandLink action="#{messageBean.fetchSelectedMessage(msg.msgId)}" value="#{msg.summary}" />
        </h:column>
   </h:dataTable>
</h:form>
然后,此对话框应打开并成功打开,但不显示任何内容

<p:dialog widgetVar="dlg1" modal="true" height="100">
    <p:dataTable var="msg1" value="#{messageBean.selectedMessage}">

        <p:column headerText="id">
            <h:outputText value="#{msg1.msgId}"/>
        </p:column>

        <p:column headerText="to person">
            <h:outputText value="#{msg1.toPerson}"/>
        </p:column>

    </p:dataTable>

</p:dialog>
为什么对话框数据表不能显示任何内容


selectedMessage是一个消息类型列表,不为空。

每次单击后需要更新对话框:

<p:commandLink ... process="@this" update=":msgForm:dlgPanel" onComplete="PF('dlg1').show();"/>

通常,对话框已经在页面加载时绘制,它只是隐藏的,所以如果模型发生变化,您仍然需要AJAX更新它。向commandLink添加更新可能会修复它。@DavidS是这样的吗?更新=PF'dlg1'。显示;否,更新属性必须与页面上的组件ID匹配。您将想了解更多关于这方面的信息,因为这是将AJAX与JSF结合使用的一个重要部分。这里有一个例子。巴卢斯克在这里写了一本很好的指南。@DavidS是对的。在深入研究之前,先从一些基本的jsf/ajax教程开始
<p:commandLink ... process="@this" update=":msgForm:dlgPanel" onComplete="PF('dlg1').show();"/>