2014-06-15 41 views
0

我有一個Hibernate查詢返回列表,我想在Primeface的用戶界面上顯示列表中的不同元素。這如何實現?提前致謝!如何在用戶界面上顯示(Primefaces)java列表<Object>

這是我的方法:

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

回答

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

這不是PrimeFaces。 [p:dataTable](http://www.primefaces.org/showcase/ui/data/datatable/basic.xhtml)是PrimeFaces建議的解決方案。 – Omar

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>` 
相關問題