我有一个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;
}
答案 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>`