我正在使用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;
}