如何在用户界面(Primefaces)上显示java List <object> </object>

时间:2014-06-15 10:39:53

标签: java hibernate jsf jsf-2 primefaces

我有一个Hibernate查询,它返回List,我想在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;
    }

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

您可以使用数据表

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