|
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
javax.faces.model Class ResultSetDataModel
java.lang.Objectjavax.faces.model.DataModel
javax.faces.model.ResultSetDataModel
public class ResultSetDataModel
- extends DataModel
ResultSetDataModel 是 DataModel 的便捷实现,它包装了一个 Java 对象 ResultSet。注意,指定的 ResultSet 必须是可滚动的。此外,如果输入组件(它将更新模型值)在值绑定表达式中引用此对象,则指定的 ResultSet 必须是可更新的。
ResultSetDataModel is a convenience implementation of
DataModel that wraps a ResultSet of Java objects.
Note that the specified ResultSet MUST
be scrollable. In addition, if input components (that will be updating
model values) reference this object in value binding expressions, the
specified ResultSet MUST be updatable.
| Constructor Summary | |
|---|---|
ResultSetDataModel()
Construct a new ResultSetDataModel with no specified
wrapped data. |
|
ResultSetDataModel(ResultSet resultSet)
Construct a new ResultSetDataModel wrapping the specified
ResultSet. |
|
| Method Summary | |
|---|---|
int |
getRowCount()
Return -1, since ResultSet does not provide a
standard way to determine the number of available rows without
scrolling through the entire ResultSet, and this can
be very expensive if the number of rows is large. |
Object |
getRowData()
If row data is available, return a Map representing
the values of the columns for the row specified by rowIndex,
keyed by the corresponding column names. |
int |
getRowIndex()
Return the zero-relative index of the currently selected row. |
Object |
getWrappedData()
Return the object representing the data wrapped by this DataModel, if any. |
boolean |
isRowAvailable()
Return true if there is wrappedData
available, and the result of calling absolute() on the
underlying ResultSet, passing the current value of
rowIndex plus one (to account for the fact that
ResultSet uses one-relative indexing), returns
true. |
void |
setRowIndex(int rowIndex)
Set the zero-relative index of the currently selected row, or -1 to indicate that we are not positioned on a row. |
void |
setWrappedData(Object data)
Set the object representing the data collection wrapped by this DataModel. |
| Methods inherited from class javax.faces.model.DataModel |
|---|
addDataModelListener, getDataModelListeners, removeDataModelListener |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public
ResultSetDataModel()
构造不带指定包装数据的新 ResultSetDataModel。
ResultSetDataModel
public ResultSetDataModel()
Construct a new
ResultSetDataModelwith no specified wrapped data.
public
ResultSetDataModel(java.sql.ResultSet resultSet)
构造包装指定 ResultSet 的新 ResultSetDataModel。
| resultSet |
要包装的 ResultSet(如果有) |
ResultSetDataModel
public ResultSetDataModel(ResultSet resultSet)
Construct a new
ResultSetDataModelwrapping the specifiedResultSet.- Parameters:
resultSet-ResultSetto be wrapped (if any)
| Method Detail |
|---|
public boolean
isRowAvailable()
如果有可用的 wrappedData,并且对底层 ResultSet 调用 absolute(),同时传递 rowIndex 加 1 处的当前值(考虑到 ResultSet 使用以 1 开始的索引)所得结果为 true,则返回 true。否则返回 false。
| Throws | FacesException: 如果检测行可用性时发生错误 |
isRowAvailable
public boolean isRowAvailable()
Return
trueif there iswrappedDataavailable, and the result of callingabsolute()on the underlyingResultSet, passing the current value ofrowIndexplus one (to account for the fact thatResultSetuses one-relative indexing), returnstrue. Otherwise, returnfalse.- Specified by:
isRowAvailablein classDataModel
- Throws:
FacesException- if an error occurs getting the row availability
public int
getRowCount()
返回 -1,ResultSet 没有提供无需滚动整个 ResultSet 即可确定可用行数的标准方式,因此,如果行数很大,此操作可能开销很大。
| Throws | FacesException: 如果获取行数时发生错误 |
getRowCount
public int getRowCount()
Return -1, since
ResultSetdoes not provide a standard way to determine the number of available rows without scrolling through the entireResultSet, and this can be very expensive if the number of rows is large.- Specified by:
getRowCountin classDataModel
- Throws:
FacesException- if an error occurs getting the row count
public Object
getRowData()
如果行数据可用,则返回一个 Map,它表示 rowIndex 所指定行的列值,以相应的列名称作为键。如果没有任何包装数据可用,则返回 null。
如果返回非 null Map,则其行为必须符合 AbstractMap 的 JavaDoc 中描述的有关可变 Map 的协定,但存在以下例外和特殊行为:
Map及其返回的任何支持对象必须以不区分大小写的方式执行所有列名称比较。必须使用不区分大小写的Comparator(如String.CASE_INSENSITIVE_ORDER)实现该目的。- 以下方法必须抛出
UnsupportedOperationException:clear()、remove()。 entrySet()方法必须返回具有以下行为的Set:- 对于任何试图向
Set添加条目或从其中删除条目的操作抛出UnsupportedOperationException,不管该操作是直接还是间接地通过Set所返回的Iterator进行。 - 对此
set中条目的value的更新必须写入底层ResultSet中相应的列值。
- 对于任何试图向
keySet()方法必须返回一个Set,它能对任何试图添加或删除键的操作抛出UnsupportedOperationException,不管该操作是直接还是间接地通过Set所返回的Iterator进行。- 如果指定了
containsKey()返回false的键值,则put()方法必须抛出IllegalArgumentException。但是,如果指定了Map中已经存在的键,则指定的值必须写入底层ResultSet中相应的列值。 values()方法必须返回一个Collection,它能对任何添加或删除值的操作抛出UnsupportedOperationException,不管该操作是直接还是间接地通过Collection所返回的Iterator进行。
| Throws | FacesException: 如果获取行数据时发生错误 |
| Throws | IllegalArgumentException: 如果当前指定行索引处的行数据目前可用 |
getRowData
public Object getRowData()
If row data is available, return a
Maprepresenting the values of the columns for the row specified byrowIndex, keyed by the corresponding column names. If no wrapped data is available, returnnull.If a non-
nullMapis returned, its behavior must correspond to the contract for a mutableMapas described in the JavaDocs forAbstractMap, with the following exceptions and specialized behavior:- The
Map, and any supporting objects it returns, must perform all column name comparisons in a case-insensitive manner. This case-insensitivity must be implemented using a case-insensitiveComparator, such asString.CASE_INSENSITIVE_ORDER. - The following methods must throw
UnsupportedOperationException:clear(),remove(). - The
entrySet()method must return aSetthat has the following behavior:- Throw
UnsupportedOperationExceptionfor any attempt to add or remove entries from theSet, either directly or indirectly through anIteratorreturned by theSet. - Updates to the
valueof an entry in thissetmust write through to the corresponding column value in the underlyingResultSet.
- Throw
- The
keySet()method must return aSetthat throwsUnsupportedOperationExceptionon any attempt to add or remove keys, either directly or through anIteratorreturned by theSet. - The
put()method must throwIllegalArgumentExceptionif a key value for whichcontainsKey()returnsfalseis specified. However, if a key already present in theMapis specified, the specified value must write through to the corresponding column value in the underlyingResultSet. - The
values()method must return aCollectionthat throwsUnsupportedOperationExceptionon any attempt to add or remove values, either directly or through anIteratorreturned by theCollection.
- The
- Specified by:
getRowDatain classDataModel
- Throws:
FacesException- if an error occurs getting the row dataIllegalArgumentException- if now row data is available at the currently specified row index
public int
getRowIndex()
| Throws | FacesException: NullPointerException 如果获取行索引时发生错误 |
getRowIndex
public int getRowIndex()
- Description copied from class:
DataModel Return the zero-relative index of the currently selected row. If we are not currently positioned on a row, or no
wrappedDatais available, return -1.- Specified by:
getRowIndexin classDataModel
- Throws:
FacesException- if an error occurs getting the row index
public void
setRowIndex(int rowIndex)
| Throws | FacesException: NullPointerException 如果设置行索引时发生错误 |
| Throws | IllegalArgumentException:
NullPointerException
如果 rowIndex 小于 -1 |
setRowIndex
public void setRowIndex(int rowIndex)
- Description copied from class:
DataModel Set the zero-relative index of the currently selected row, or -1 to indicate that we are not positioned on a row. It is possible to set the row index at a value for which the underlying data collection does not contain any row data. Therefore, callers may use the
isRowAvailable()method to detect whether row data will be available for use by thegetRowData()method.If there is no
wrappedDataavailable when this method is called, the specifiedrowIndexis stored (and may be retrieved by a subsequent call togetRowData()), but no event is sent. Otherwise, if the currently selected row index is changed by this call, aDataModelEventwill be sent to therowSelected()method of all registeredDataModelListeners.- Specified by:
setRowIndexin classDataModel
- Parameters:
rowIndex- The new zero-relative index (must be non-negative)- Throws:
FacesException- if an error occurs setting the row indexIllegalArgumentException- ifrowIndexis less than -1
public Object
getWrappedData()
英文文档:
getWrappedData
public Object getWrappedData()
- Description copied from class:
DataModel Return the object representing the data wrapped by this
DataModel, if any.- Specified by:
getWrappedDatain classDataModel
public void
setWrappedData(Object data)
| Throws | ClassCastException:
NullPointerException
如果 data 的类型不适合此 DataModel 实现 |
setWrappedData
public void setWrappedData(Object data)
- Description copied from class:
DataModel Set the object representing the data collection wrapped by this
DataModel. If the specifieddataisnull, detach thisDataModelfrom any previously wrapped data collection instead.If
datais non-null, the currently selected row index must be set to zero, and aDataModelEventmust be sent to therowSelected()method of all registeredDataModelListeners indicating that this row is now selected.- Specified by:
setWrappedDatain classDataModel
- Parameters:
data- Data collection to be wrapped, ornullto detach from any previous data collection- Throws:
ClassCastException- ifdatais not of the appropriate type for thisDataModelimplementation
|
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
Submit a bug or feature
Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
PS : 未经我党受权你也可自由散发此文档。 如有任何错误请自行修正;若因此而造成任何损失请直接找人民主席,请勿与本人联系。谢谢!
