问题描述
我在网站上显示了预制视图。数据查询是通过Hibernate从DB2数据库完成的,并与JSF一起显示。整个过程都在本地JBoss服务器上运行。
这是HTML背后的逻辑bean:
@Named(value = "vb")
@ViewScoped
public class ViewBean implements Serializable {
@Inject
private ViewHandler vh;
@postconstruct
public void init() {
}
public List<PortView> getPVList() {
return vh.getPortViewList();
}
ViewHandler vh
检索来自相应实体的视图的列表。 (请参见下文)
@Stateless
public class ViewHandler {
public List<PortView> getPortViewList() {
List<PortView> pvlist = em.createquery("SELECT v FROM PortView v",PortView.class).getResultList();
return pvlist;
}
在这里,您在我的html中看到p:datatable:
<html>
<h:body>
<h:form>
<p:dataTable var="portview" value="#{vb.PVList}"
resizableColumns="true" stickyHeader="true"
stickyTopAt=".layout-topbar"
style="margin-left:10%; margin-right:10%; font-family: verdana">
<p:column style="width: 0px" sortable="false" />
<p:column headerText="Instance" sortBy="#{portview.instance}"
style="font-family: verdana; text-align:left">
<h:outputText value="#{portview.instance}" />
</p:column>
[more columns]
</p:dataTable>
</h:form>
</h:body>
</html>
问题:无法对每一列进行排序,内容始终是随机的。我该怎么办才能解决这个问题?
解决方法
幸运的是,@ Melloware能够回答我的问题:您只需将sortBy="table.column"
添加到p:datatable
属性中即可。
有关文档,请参见here。