基於jsf的datatable多選操作
阿新 • • 發佈:2019-02-02
首先在頁面上要使用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";
}
}
<%@ 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";
}
}