天天看點

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的資料,通過調用DataModel的setWrappedObject()方法進行設定,調用getWrappedObject()則可以取回原始資料類型。

例如:

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";
    }


           

本文來自CSDN部落格,轉載請标明出處:http://blog.csdn.net/wu_07/archive/2007/11/01/1861782.aspx