首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

创办通用的List<Map>型Primefaces数据模型

2013-04-07 
创建通用的ListMap型Primefaces数据模型在Primefaces组件中,数据模型为DataTable、DataGrid等组件提供数

创建通用的List<Map>型Primefaces数据模型
        在Primefaces组件中,数据模型为DataTable、DataGrid等组件提供数据支持,DataTable、DataGrid等组件实现记录选择、分页、排序功能都依赖这些数据模型。Primefaces所使用的数据模型大多数是List<Bean>类型,这意味着在使用这些组件时,需要一个一个地定义这些Bean类,这是一个通行的普遍的做法,这种方式编程的效率比较低。我们可以为Primefaces定义一个通用的List<Map>类型的数据模型,大大提高使用Primefaces的开发效率。
        ListMapDataModel类是本人专门为Primefaces开发的、经过大量实践证明了的通用的Primefaces数据模型类,在使用Primefaces编程时,它的实用价值非常高,可供Primefaces的用户参考。这个类会在我今后的JadePool、Primefaces的范例中经常使用,敬请留意。

/* * ListMapDataModel.java * 2013-03-29 * 胡开明 */package china;import java.io.Serializable;import java.util.List;import java.util.Map;import javax.faces.model.ListDataModel;import org.primefaces.model.SelectableDataModel;/** * * 为Primefaces开发的通用的数据模型类 * * @author hkm */public class ListMapDataModel extends ListDataModel<Map> implements SelectableDataModel<Map>, Serializable {    private String keyName;//记录的主键名    public ListMapDataModel() {    }    /**     * @param list 在记录中包含主键的数据列表     * @param keyName 主键名     */    public ListMapDataModel(List<Map> list, String keyName) {        super(list);        this.keyName = keyName;    }    /**     * 获取一条记录     *     * @param rowKey 一条记录的主键值     * @return 根据主键值返回该记录     */    @Override    public Map getRowData(String rowKey) {        List<Map> dataList = (List<Map>) getWrappedData();        for (Map m : dataList) {            if (m.get(keyName) != null && m.get(keyName).toString().equals(rowKey)) {                return m;            }        }        return null;    }    /**     * 获取一条记录的主键值     *     * @param recordMap     * @return 返回一条记录的主键值     */    @Override    public Object getRowKey(Map recordMap) {        return recordMap.get(keyName);    }}

热点排行