【问题标题】:How to show on the user interface (Primefaces) java List<Object>如何在用户界面(Primefaces)上显示 java List<Object>
【发布时间】:2014-08-05 09:33:21
【问题描述】:

我有一个 Hibernate 查询返回列表,我想在 Primeface 的用户界面上显示列表中的不同元素。如何实施?提前致谢!

这是我的方法:

public List<Object> showMessages(TRequest requestVar, Long agencyId) {
        if (!em.getTransaction().isActive())
            em.getTransaction().begin();
        Query queryMessages = em
                .createQuery("select user.name, msg.messageBody, msg.dateSent "
                        + "from TUser user join user.sentMessages msg "
                        + "where user.id in (:userId, :agencyId) "
                        + "and msg.messageGroup = :messageGroup "
                        + "order by msg.dateSent asc");

        queryMessages.setParameter("userId",
                Long.valueOf(requestVar.getAuthor().getId()));
        queryMessages.setParameter("agencyId", agencyId);
        queryMessages.setParameter("messageGroup", messageGroup);

        List<Object> messages = queryMessages.getResultList();
        return messages;
    }

【问题讨论】:

    标签: java hibernate jsf jsf-2 primefaces


    【解决方案1】:

    我找到了解决办法:

    <c:forEach
                                items="#{userRequestBean.showMessages(userRequestBean.request, agency[1])}"
                                var="message">
    
                                <h:outputText value="#{message[1]}"
                                    style="width: 100px; white-space: normal; border: 3px" />
                        </c:forEach>
    

    【讨论】:

    • 这根本不是 PrimeFaces。 p:dataTable 是 PrimeFaces 建议的解决方案。
    【解决方案2】:

    你可以使用数据表

     `<p:dataTable var="data" value=" {userRequestBean.showMessages(userRequestBean.requestVar,userRequestBean.agent)}">
      <p:columns>
      <f:facet name="header">
      User Name
     </f:facet>
      #{data.name}
      </p:columns>
      <p:columns>
      <f:facet name="header">
      Message
      </f:facet>
      #{data.messageBody}
      </p:columns>
      <p:columns>
      <f:facet name="header">
      Date Sent
      </f:facet>
      #{data.dateSent}
       </p:columns>
      </p:dataTable>`
    

    否则使用 UI 重复

    `<ui:repeat var="data" value="#  {userRequestBean.showMessages(userRequestBean.requestVar,userRequestBean.agent)}"     varStatus="status">
    <tr>
        <td>#{data.name}</td>
        <td>#{data.messageBody}</td>
        <td>#{data.dateSent}</td>
     </tr>
    </ui:repeat>`
    

    【讨论】:

      猜你喜欢
      • 2016-08-16
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多