p:数据表未找到记录



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

当用户单击Detail链接时,应显示带有数据表的对话框。

这是代码:

<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>

这是messageBean.fetchSelectedMessag(...)

@ManagedBean
@SessionScoped
public class MessageBean {
...
private List<Messages> messagesList;
private List<Messages> selectedMessage;
public void fetchSelectedMessage(String msgId) {
    String sql = "SELECT * FROM messages WHERE msgId=?";
    selectedMessage = jdbcTemplate.query(sql, new Object[]{msgId}, new BeanPropertyRowMapper<Messages>(Messages.class));
    System.out.println("fetched selected message== " + selectedMessage); //correct
    //open dialog sucucessfully
    RequestContext context = RequestContext.getCurrentInstance();
    context.execute("PF('dlg1').show();");
}
//getter/setters

然后此对话框应打开(并成功打开,但不显示任何内容(

<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>

为什么对话框数据表不能显示任何内容?

selectedMessagemessages类型的列表,不为 null。

您需要在

每次单击后更新对话框:

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

相关内容

  • 没有找到相关文章

最新更新