JSF點滴積累--DataModel類

JSF提供javax.faces.model包,數據模型DataModel類位於此包中。

DataModel實現了一個抽象任意數據綁定技術,可以被用來適應各種數據源使用JSF組件,爲子組件提供Row操作功能(如UIData,表格、列表和樹都是它的子類)。
例如,h:dataTable支持下面幾種類型數據的存取
l          數組
l          java.util.List
l          javax.servlet.jsp.jstl.sql.Result
l          java.sql.ResultSet
l          Object
分別對應以下幾種DataModel
l          ArrayDataModel
l          ListDataModel
l          ResultDataModel
l          ResultSetDataModel
l          ScalarDataModel
我們可以使用DataModel來設定dataTable數據,通過調用DataModelsetWrappedObject()方法進行設定,調用getWrappedObject()則可以取回原始數據類型。
例如:
TableBean.java
package onlyfun.caterpillar;

import java.util.*;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

public class TableBean {
    
private DataModel model;

    
private int rowIndex = -1;

    
public DataModel getUsers() {
        
if (model == null) {
            model 
= new ListDataModel();
            model.setWrappedData(getUserList());
        }
        
return model;
    }

    
private List getUserList() {
        List userList 
= new ArrayList();
        userList.add(
new UserBean("caterpillar""123456"));
        userList.add(
new UserBean("momor""654321"));
        userList.add(
new UserBean("becky""7890"));
        
return userList;
    }

    
public int getSelectedRowIndex() {
        
return rowIndex;
    }

    
public String select() {
        rowIndex 
= model.getRowIndex();
        
return "success";
    }
}

 

部分參考:JSF學習筆記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章