|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
javax.faces.model Class ResultSetDataModel
java.lang.Object javax.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
ResultSetDataModel
with no specified wrapped data.
public
ResultSetDataModel(java.sql.ResultSet resultSet)
构造包装指定 ResultSet
的新 ResultSetDataModel
。
resultSet |
要包装的 ResultSet (如果有) |
ResultSetDataModel
public ResultSetDataModel(ResultSet resultSet)
Construct a new
ResultSetDataModel
wrapping the specifiedResultSet
.- Parameters:
resultSet
-ResultSet
to 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
true
if there iswrappedData
available, and the result of callingabsolute()
on the underlyingResultSet
, passing the current value ofrowIndex
plus one (to account for the fact thatResultSet
uses one-relative indexing), returnstrue
. Otherwise, returnfalse
.- Specified by:
isRowAvailable
in 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
ResultSet
does 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:
getRowCount
in 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
Map
representing 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-
null
Map
is returned, its behavior must correspond to the contract for a mutableMap
as 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 aSet
that has the following behavior:- Throw
UnsupportedOperationException
for any attempt to add or remove entries from theSet
, either directly or indirectly through anIterator
returned by theSet
. - Updates to the
value
of an entry in thisset
must write through to the corresponding column value in the underlyingResultSet
.
- Throw
- The
keySet()
method must return aSet
that throwsUnsupportedOperationException
on any attempt to add or remove keys, either directly or through anIterator
returned by theSet
. - The
put()
method must throwIllegalArgumentException
if a key value for whichcontainsKey()
returnsfalse
is specified. However, if a key already present in theMap
is specified, the specified value must write through to the corresponding column value in the underlyingResultSet
. - The
values()
method must return aCollection
that throwsUnsupportedOperationException
on any attempt to add or remove values, either directly or through anIterator
returned by theCollection
.
- The
- Specified by:
getRowData
in 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
wrappedData
is available, return -1.- Specified by:
getRowIndex
in 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
wrappedData
available when this method is called, the specifiedrowIndex
is 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, aDataModelEvent
will be sent to therowSelected()
method of all registeredDataModelListener
s.- Specified by:
setRowIndex
in classDataModel
- Parameters:
rowIndex
- The new zero-relative index (must be non-negative)- Throws:
FacesException
- if an error occurs setting the row indexIllegalArgumentException
- ifrowIndex
is 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:
getWrappedData
in 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 specifieddata
isnull
, detach thisDataModel
from any previously wrapped data collection instead.If
data
is non-null
, the currently selected row index must be set to zero, and aDataModelEvent
must be sent to therowSelected()
method of all registeredDataModelListener
s indicating that this row is now selected.- Specified by:
setWrappedData
in classDataModel
- Parameters:
data
- Data collection to be wrapped, ornull
to detach from any previous data collection- Throws:
ClassCastException
- ifdata
is not of the appropriate type for thisDataModel
implementation
|
|||||||||
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 : 未经我党受权你也可自由散发此文档。 如有任何错误请自行修正;若因此而造成任何损失请直接找人民主席,请勿与本人联系。谢谢!