1. 程式人生 > >基於jsf的datatable多選操作

基於jsf的datatable多選操作

首先在頁面上要使用Myfaces的一個taglib
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>
然後在頁面的<f:view>內部用
<t:saveState value="#{後臺Bean}"></t:saveState>
下面是datatable的寫法
<h:dataTable id="dt" value="#{後臺Bean.resultList}" var="aaa"

binding="#{後臺Bean.table}">//這裡在後臺bean中要有table屬性,是UIData

型別的,提供get,set方法
<h:column>
<f:facet name="header">
<h:outputText value="序號" />
</f:facet>
<center>
<h:selectBooleanCheckbox value="#{後臺Bean.selectTable[後臺

Bean.table.rowIndex]}" />//這裡在後臺bean中要有selectTable這個屬性

       <h:outputText value="#{後臺Bean.table.rowIndex+1}" />
</center>
</h:column>

後臺bean的寫法

public class 後臺Bean{

private UIData table;
private boolean[] selectTable;
private List list;
@PersistenceContext
private EntityManager em;

public List getResultList(){
list = 呼叫ejb的方法得到list的結果
       selectTable = new boolean[list.size()];//給變數初始化是在此位置
return list;
}

public String deleteAction(){
   for(int i = 0; i < selectTable.length; i++){
if(selectTable[i]){
   em.remove(list.get(i));
}
    }
    return "success";
}
}