读书人

JSF DataModel数据模型种

发布时间: 2012-10-27 10:42:26 作者: rapoo

JSF DataModel数据模型类

?

?

?? DataModel的rowIndex是从0开始计算,当处理ActionEvent时,JSF会逐次递增rowIndex的值,这让您可以得知目前正在处理的是哪一个row的数据.

?

?

?? JSF提供了一个模型包:javax.faces.model。数据模型DataModel类位于此包中。这个类的说明如下:数据模型(特指这个包中的DataModel类)是JSF数据绑定技术的一个抽象,而数据绑定技术能够被JSF组件用来和各种数据源进行适配,从而支持按照行来处理他们的子组件(例如UIData)。DataModel实例中的数据集合—ata collection)是按照行对象(Row Objects)集合进行建模的,从而支持行指针(类似于数据库的游标,也是从0开始)。这个提供了通过当前行指针的位置来获得相对应的对象的一种机制。用户可以通过setWrappedData(Object obj)方法将业务对象附加到这个DataModel上,可以通过将null传递给这个方法来脱离。

UIComponent <-------> DataModel <--------> Business Model

注意:这里的UIComponent经常是UIData,我会在另外一个文章中介绍UIData.

ListDataModel, ArrayDataModel, ResultDataModel, ResultSetDataModel, ScalarDataModel

    ListDataModel可以方便的包装java.util.List对象。ListDataModel(java.util.List list) ArrayDataModel可以方便的包装Object[] 数组。ArrayDataModel(java.lang.Object[] array) ResultDataModel可以方便地包装JSTL的结果对象(JSTL Result Object),通常代表通过JSTL标签执行SQL语句产生的结果。ResultDataModel(javax.servlet.jsp.jstl.sql.Result result) ResultSetDataModel可以方便的包装Java对象的结果集(ResultSet of Java objects). ResultSetDataModel(java.sql.ResultSet resultSet)注意:这个结果集必须是可以滚动的(Scrollable),另外如果输入组件(可能更新模型值)通过使用值绑定来引用这个对象,这个结果集必须是可更新(Updatable)的 ScalarDataModel可以方便的包装单个Java对象。ScalarDataModel(java.lang.Object scalar)

读书人网 >JavaScript

热点推荐