我正在使用 Seam 和 Java 制作一个 h:dataTable,其中包含来自 ArrayList 的信息,其中填充了对象。我的问题是,有没有办法通过单击其中一个标题来对表格进行排序。我现在有一些代码,它所做的只是以与以前相同的方式重新加载表。
这是我的一些代码。如果您需要更多信息,请告诉我: 表:
<h:dataTable value="#{deliveryPort.getWholeDeliveryList()}" var="delivery" rules="rows">
<h:column>
<div class="setWidth">
<div class="white">
<f:facet name="header">
<h:outputLink style="color:#FFFFFF" action="#{deliveryPort.sortByAddress()}">
Address
</h:outputLink>
</f:facet>
</div>
<h:outputText value="#{delivery.address}" />
</div>
</h:column>
种类:
public String sortByAddress(){
for(int i = 0; i < wholeDeliveryList.size(); i++){
for(int j= i+1; j<wholeDeliveryList.size(); j++){
if(wholeDeliveryList.get(i).getAddress().compareTo(wholeDeliveryList.get(j).getAddress())<1){
FlowerStoreDelivery temp = wholeDeliveryList.get(i);
wholeDeliveryList.set(i, wholeDeliveryList.get(j));
wholeDeliveryList.set(j, temp);
}
}
}
return "deliveryList.seam";
}
getWholeDeliveryList():
public List<FlowerStoreDelivery> getWholeDeliveryList(){
wholeDeliveryList = new ArrayList<FlowerStoreDelivery>();
wholeDeliveryList.addAll(entityManager.createQuery("SELECT e FROM FlowerStoreDelivery e").getResultList());
return wholeDeliveryList;
}