|
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
javax.faces.component Class UIComponentBase
java.lang.Objectjavax.faces.component.UIComponent
javax.faces.component.UIComponentBase
- All Implemented Interfaces:
- StateHolder
- Direct Known Subclasses:
- UIColumn, UICommand, UIData, UIForm, UIGraphic, UIMessage, UIMessages, UINamingContainer, UIOutput, UIPanel, UIParameter, UISelectItem, UISelectItems, UIViewRoot
public abstract class UIComponentBase
- extends UIComponent
UIComponentBase 是一个便捷基类,实现 UIComponent 定义的所有方法的默认具体行为。
默认情况下,此类定义 getRendersChildren() 以查找此组件的 renderer 并调用其 getRendersChildren() 方法。Renderer 上的默认实现返回 false。自 JavaServer Faces 规范 1.2 版起,鼓励组件编写者从此方法返回 true,并依赖于此类和 Renderer 中的 #encodeChildren 的实现 (Renderer#encodeChildren)。相反,要管理其子组件呈现的子类应重写此方法以返回 true。
UIComponentBase is a convenience base class that
implements the default concrete behavior of all methods defined by
UIComponent.
By default, this class defines getRendersChildren()
to find the renderer for this component and call its
getRendersChildren() method. The default implementation
on the Renderer returns false. As of
version 1.2 of the JavaServer Faces Specification, component authors
are encouraged to return true from this method and rely
on the implementation of encodeChildren(javax.faces.context.FacesContext) in this class and in
the Renderer (Renderer.encodeChildren(javax.faces.context.FacesContext, javax.faces.component.UIComponent)). Subclasses that wish
to manage the rendering of their children should override this method
to return true instead.
| Field Summary |
|---|
| Fields inherited from class javax.faces.component.UIComponent |
|---|
bindings |
| Constructor Summary | |
|---|---|
UIComponentBase()
|
|
| Method Summary | |
|---|---|
protected void |
addFacesListener(FacesListener listener)
Add the specified FacesListener to the set of listeners
registered to receive event notifications from this UIComponent. |
void |
broadcast(FacesEvent event)
Broadcast the specified FacesEvent to all registered
event listeners who have expressed an interest in events of this
type. |
void |
decode(FacesContext context)
Decode any new state of this UIComponent from the
request contained in the specified FacesContext, and store
this state as needed. |
void |
encodeBegin(FacesContext context)
If our rendered property is true,
render the beginning of the current state of this
UIComponent to the response contained in the specified
FacesContext. |
void |
encodeChildren(FacesContext context)
If our rendered property is true,
render the child UIComponents of this UIComponent. |
void |
encodeEnd(FacesContext context)
If our rendered property is true,
render the ending of the current state of this
UIComponent. |
UIComponent |
findComponent(String expr)
Search for and return the UIComponent with an id
that matches the specified search expression (if any), according to the
algorithm described below. |
Map<String,Object> |
getAttributes()
Return a mutable Map representing the attributes
(and properties, see below) associated wth this UIComponent,
keyed by attribute name (which must be a String). |
int |
getChildCount()
Return the number of child UIComponents that are
associated with this UIComponent. |
List<UIComponent> |
getChildren()
Return a mutable List representing the child
UIComponents associated with this component. |
String |
getClientId(FacesContext context)
Return a client-side identifier for this component, generating one if necessary. |
protected FacesContext |
getFacesContext()
Convenience method to return the FacesContext instance
for the current request. |
protected FacesListener[] |
getFacesListeners(Class clazz)
Return an array of registered FacesListeners that are
instances of the specified class. |
UIComponent |
getFacet(String name)
Convenience method to return the named facet, if it exists, or null otherwise. |
int |
getFacetCount()
Return the number of facet UIComponents that are
associated with this UIComponent. |
Map<String,UIComponent> |
getFacets()
Return a mutable Map representing the facet
UIComponents associated with this UIComponent,
keyed by facet name (which must be a String). |
Iterator<UIComponent> |
getFacetsAndChildren()
Return an Iterator over the facet followed by child
UIComponents of this UIComponent. |
String |
getId()
Return the component identifier of this UIComponent. |
UIComponent |
getParent()
Return the parent UIComponent of this
UIComponent, if any. |
protected Renderer |
getRenderer(FacesContext context)
Convenience method to return the Renderer instance
associated with this component, if any; otherwise, return
null. |
String |
getRendererType()
Return the Renderer type for this UIComponent
(if any). |
boolean |
getRendersChildren()
Return a flag indicating whether this component is responsible for rendering its child components. |
ValueBinding |
getValueBinding(String name)
Deprecated. This has been replaced by UIComponent.getValueExpression(java.lang.String). |
boolean |
invokeOnComponent(FacesContext context,
String clientId,
ContextCallback callback)
Starting at this component in the View hierarchy, search for a
component with a |
boolean |
isRendered()
Return true if this component (and its children)
should be rendered during the Render Response phase
of the request processing lifecycle. |
boolean |
isTransient()
If true, the Object implementing this interface must not participate in state saving or restoring. |
void |
processDecodes(FacesContext context)
Perform the component tree processing required by the Apply Request Values phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows. |
void |
processRestoreState(FacesContext context,
Object state)
Perform the component tree processing required by the Restore View phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows. |
Object |
processSaveState(FacesContext context)
Perform the component tree processing required by the state saving portion of the Render Response phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows. |
void |
processUpdates(FacesContext context)
Perform the component tree processing required by the Update Model Values phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows. |
void |
processValidators(FacesContext context)
Perform the component tree processing required by the Process Validations phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows. |
void |
queueEvent(FacesEvent event)
Queue an event for broadcast at the end of the current request processing lifecycle phase. |
protected void |
removeFacesListener(FacesListener listener)
Remove the specified FacesListener from the set of listeners
registered to receive event notifications from this UIComponent. |
static Object |
restoreAttachedState(FacesContext context,
Object stateObj)
This method is called by UIComponent subclasses that
need to restore the objects they saved using saveAttachedState(javax.faces.context.FacesContext, java.lang.Object). |
void |
restoreState(FacesContext context,
Object state)
Perform any processing required to restore the state from the entries in the state Object. |
static Object |
saveAttachedState(FacesContext context,
Object attachedObject)
This method is called by UIComponent subclasses that
want to save one or more attached objects. |
Object |
saveState(FacesContext context)
Gets the state of the instance as a Serializable Object. |
void |
setId(String id)
Set the component identifier of this UIComponent (if any). |
void |
setParent(UIComponent parent)
Set the parent UIComponent of this
UIComponent. |
void |
setRendered(boolean rendered)
Set the rendered property of this
UIComponent. |
void |
setRendererType(String rendererType)
Set the Renderer type for this UIComponent,
or null for components that render themselves. |
void |
setTransient(boolean transientFlag)
Denotes whether or not the Object implementing this interface must or must not participate in state saving or restoring. |
void |
setValueBinding(String name,
ValueBinding binding)
Deprecated. This has been replaced by UIComponent.setValueExpression(java.lang.String, javax.el.ValueExpression). |
| Methods inherited from class javax.faces.component.UIComponent |
|---|
encodeAll, getContainerClientId, getFamily, getValueExpression, setValueExpression |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public
UIComponentBase()
英文文档:
UIComponentBase
public UIComponentBase()
| Method Detail |
|---|
public java.util.Map<K, V>
getAttributes()
英文文档:
getAttributes
public Map<String,Object> getAttributes()
- Description copied from class:
UIComponent Return a mutable
Maprepresenting the attributes (and properties, see below) associated wth thisUIComponent, keyed by attribute name (which must be a String). The returned implementation must support all of the standard and optionalMapmethods, plus support the following additional requirements:- The
Mapimplementation must implement thejava.io.Serializableinterface. - Any attempt to add a
nullkey or value must throw aNullPointerException. - Any attempt to add a key that is not a String must throw
a
ClassCastException. - If the attribute name specified as a key matches a property
of this
UIComponent's implementation class, the following methods will have special behavior:containsKey- Returnfalse.get()- If the property is readable, call the getter method and return the returned value (wrapping primitive values in their corresponding wrapper classes); otherwise throwIllegalArgumentException.put()- If the property is writeable, call the setter method to set the corresponding value (unwrapping primitive values in their corresponding wrapper classes). If the property is not writeable, or an attempt is made to set a property of primitive type tonull, throwIllegalArgumentException.remove- ThrowIllegalArgumentException.
- The
- Specified by:
getAttributesin classUIComponent
public ValueBinding
getValueBinding(String name)
NullPointerException
调用 #getValueExpression 并检查结果。如果结果是 #setValueBinding 中规定的包装器类的实例,则提取 ValueBinding 实例并将其返回。否则,在 ValueBinding 的实现中包装结果,并将其返回。
| Throws | NullPointerException:
NullPointerException
如果 name 为 null |
| deprecated |
此方法已由 #getValueExpression 替代。 |
getValueBinding
public ValueBinding getValueBinding(String name)
- Deprecated. This has been replaced by
UIComponent.getValueExpression(java.lang.String). Call through to
UIComponent.getValueExpression(java.lang.String)and examine the result. If the result is an instance of the wrapper class mandated inUIComponent.setValueBinding(java.lang.String, javax.faces.el.ValueBinding), extract theValueBindinginstance and return it. Otherwise, wrap the result in an implementation ofValueBinding, and return it.- Specified by:
getValueBindingin classUIComponent
- Parameters:
name- Name of the attribute or property for which to retrieve aValueBinding- Throws:
NullPointerException- ifnameisnull
public void
setValueBinding(String name, ValueBinding binding)
NullPointerException
在 ValueExpression 的实现中包装参数 binding 并调用 #setValueExpression。
| Throws | IllegalArgumentException:
NullPointerException
如果 name 是 id 或 parent 之一 |
| Throws | NullPointerException:
NullPointerException
如果 name 为 null |
| deprecated |
此方法已由 #setValueExpression 替代。 |
setValueBinding
public void setValueBinding(String name, ValueBinding binding)
- Deprecated. This has been replaced by
UIComponent.setValueExpression(java.lang.String, javax.el.ValueExpression). Wrap the argument
bindingin an implementation ofValueExpressionand call through toUIComponent.setValueExpression(java.lang.String, javax.el.ValueExpression).- Specified by:
setValueBindingin classUIComponent
- Parameters:
name- Name of the attribute or property for which to set aValueBindingbinding- TheValueBindingto set, ornullto remove any currently setValueBinding- Throws:
IllegalArgumentException- ifnameis one ofidorparentNullPointerException- ifnameisnull
public String
getClientId(FacesContext context)
| Throws | NullPointerException:
NullPointerException
如果 context 为 null |
getClientId
public String getClientId(FacesContext context)
- Description copied from class:
UIComponent Return a client-side identifier for this component, generating one if necessary. The associated
Renderer, if any, will be asked to convert the clientId to a form suitable for transmission to the client.The return from this method must be the same value throughout the lifetime of the instance, unless the
idproperty of the component is changed, or the component is placed in aNamingContainerwhose client ID changes (for example,UIData). However, even in these cases, consecutive calls to this method must always return the same value. The implementation must follow these steps in determining the clientId:Find the closest ancestor to this component in the view hierarchy that implements
NamingContainer. CallgetContainerClientId()on it and save the result as theparentIdlocal variable. CallUIComponent.getId()on this component and save the result as themyIdlocal variable. IfmyIdisnull, callcontext.getViewRoot().createUniqueId()and assign the result to myId. IfparentIdis non-null, letmyIdequalparentId + NamingContainer.SEPARATOR_CHAR + myId. CallRenderer.convertClientId(javax.faces.context.FacesContext, java.lang.String), passingmyId, and return the result.- Specified by:
getClientIdin classUIComponent
- Parameters:
context- TheFacesContextfor the current request- Throws:
NullPointerException- ifcontextisnull
public String
getId()
英文文档:
getId
public String getId()
- Description copied from class:
UIComponent Return the component identifier of this
UIComponent.- Specified by:
getIdin classUIComponent
public void
setId(String id)
| Throws | IllegalArgumentException:
NullPointerException
如果 id 语法无效 |
| Throws | IllegalStateException: NullPointerException |
setId
public void setId(String id)
- Description copied from class:
UIComponent Set the component identifier of this
UIComponent(if any). Component identifiers must obey the following syntax restrictions:- Must not be a zero-length String.
- First character must be a letter or an underscore ('_').
- Subsequent characters must be a letter, a digit, an underscore ('_'), or a dash ('-').
Component identifiers must also obey the following semantic restrictions (note that this restriction is NOT enforced by the
setId()implementation):- The specified identifier must be unique among all the components
(including facets) that are descendents of the nearest ancestor
UIComponentthat is aNamingContainer, or within the scope of the entire component tree if there is no such ancestor that is aNamingContainer.
- Specified by:
setIdin classUIComponent
- Parameters:
id- The new component identifier, ornullto indicate that thisUIComponentdoes not have a component identifier- Throws:
IllegalArgumentException- ifidis not syntactically validIllegalStateException
public UIComponent
getParent()
英文文档:
getParent
public UIComponent getParent()
- Description copied from class:
UIComponent Return the parent
UIComponentof thisUIComponent, if any. A component must allow child components to be added to and removed from the list of children of this component, even though the child component returns null fromgetParent( ).- Specified by:
getParentin classUIComponent
public void
setParent(UIComponent parent)
英文文档:
setParent
public void setParent(UIComponent parent)
- Description copied from class:
UIComponent Set the parent
UIComponentof thisUIComponent. This method must never be called by developers; aUIComponent's internal implementation will call it as components are added to or removed from a parent's childListor facetMap.- Specified by:
setParentin classUIComponent
- Parameters:
parent- The new parent, ornullfor the root node of a component tree
public boolean
isRendered()
英文文档:
isRendered
public boolean isRendered()
- Description copied from class:
UIComponent Return
trueif this component (and its children) should be rendered during the Render Response phase of the request processing lifecycle.- Specified by:
isRenderedin classUIComponent
public void
setRendered(boolean rendered)
英文文档:
setRendered
public void setRendered(boolean rendered)
- Description copied from class:
UIComponent Set the
renderedproperty of thisUIComponent.- Specified by:
setRenderedin classUIComponent
- Parameters:
rendered- Iftruerender this component; otherwise, do not render this component
public String
getRendererType()
英文文档:
getRendererType
public String getRendererType()
- Description copied from class:
UIComponent Return the
Renderertype for thisUIComponent(if any).- Specified by:
getRendererTypein classUIComponent
public void
setRendererType(String rendererType)
英文文档:
setRendererType
public void setRendererType(String rendererType)
- Description copied from class:
UIComponent Set the
Renderertype for thisUIComponent, ornullfor components that render themselves.- Specified by:
setRendererTypein classUIComponent
- Parameters:
rendererType- Logical identifier of the type ofRendererto use, ornullfor components that render themselves
public boolean
getRendersChildren()
英文文档:
getRendersChildren
public boolean getRendersChildren()
- Description copied from class:
UIComponent Return a flag indicating whether this component is responsible for rendering its child components. The default implementation in
getRendersChildren()tries to find the renderer for this component. If it does, it callsRenderer.getRendersChildren()and returns the result. If it doesn't, it returns false. As of version 1.2 of the JavaServer Faces Specification, component authors are encouraged to returntruefrom this method and rely onencodeChildren(javax.faces.context.FacesContext).- Specified by:
getRendersChildrenin classUIComponent
public java.util.List<E>
getChildren()
英文文档:
getChildren
public List<UIComponent> getChildren()
- Description copied from class:
UIComponent Return a mutable
Listrepresenting the childUIComponents associated with this component. The returned implementation must support all of the standard and optionalListmethods, plus support the following additional requirements:- The
Listimplementation must implement thejava.io.Serializableinterface. - Any attempt to add a
nullmust throw a NullPointerException - Any attempt to add an object that does not implement
UIComponentmust throw a ClassCastException. - Whenever a new child component is added, the
parentproperty of the child must be set to this component instance. If theparentproperty of the child was already non-null, the child must first be removed from its previous parent (where it may have been either a child or a facet). - Whenever an existing child component is removed, the
parentproperty of the child must be set tonull.
- The
- Specified by:
getChildrenin classUIComponent
public int
getChildCount()
英文文档:
getChildCount
public int getChildCount()
- Description copied from class:
UIComponent Return the number of child
UIComponents that are associated with thisUIComponent. If there are no children, this method must return 0. The method must not cause the creation of a child component list.- Specified by:
getChildCountin classUIComponent
public UIComponent
findComponent(String expr)
| Throws | NullPointerException:
NullPointerException
如果 expr 为 null |
findComponent
public UIComponent findComponent(String expr)
- Description copied from class:
UIComponent Search for and return the
UIComponentwith anidthat matches the specified search expression (if any), according to the algorithm described below.For a method to find a component given a simple
clientId, seeUIComponent.invokeOnComponent(javax.faces.context.FacesContext, java.lang.String, javax.faces.component.ContextCallback).Component identifiers are required to be unique within the scope of the closest ancestor
NamingContainerthat encloses this component (which might be this component itself). If there are noNamingContainercomponents in the ancestry of this component, the root component in the tree is treated as if it were aNamingContainer, whether or not its class actually implements theNamingContainerinterface.A search expression consists of either an identifier (which is matched exactly against the
idproperty of aUIComponent, or a series of such identifiers linked by theNamingContainer.SEPARATOR_CHARcharacter value. The search algorithm should operates as follows, though alternate alogrithms may be used as long as the end result is the same:- Identify the
UIComponentthat will be the base for searching, by stopping as soon as one of the following conditions is met:- If the search expression begins with the the separator character
(called an "absolute" search expression),
the base will be the root
UIComponentof the component tree. The leading separator character will be stripped off, and the remainder of the search expression will be treated as a "relative" search expression as described below. - Otherwise, if this
UIComponentis aNamingContainerit will serve as the basis. - Otherwise, search up the parents of this component. If
a
NamingContaineris encountered, it will be the base. - Otherwise (if no
NamingContaineris encountered) the rootUIComponentwill be the base.
- If the search expression begins with the the separator character
(called an "absolute" search expression),
the base will be the root
- The search expression (possibly modified in the previous step) is now
a "relative" search expression that will be used to locate the
component (if any) that has an
idthat matches, within the scope of the base component. The match is performed as follows:- If the search expression is a simple identifier, this value is
compared to the
idproperty, and then recursively through the facets and children of the baseUIComponent(except that if a descendantNamingContaineris found, its own facets and children are not searched). - If the search expression includes more than one identifier
separated by the separator character, the first identifier is
used to locate a
NamingContainerby the rules in the previous bullet point. Then, thefindComponent()method of thisNamingContainerwill be called, passing the remainder of the search expression.
- If the search expression is a simple identifier, this value is
compared to the
- Identify the
- Specified by:
findComponentin classUIComponent
- Parameters:
expr- Search expression identifying theUIComponentto be returned- Returns:
- the found
UIComponent, ornullif the component was not found. - Throws:
NullPointerException- ifexprisnull
public boolean
invokeOnComponent(FacesContext context, String clientId, ContextCallback callback) throws FacesException
NullPointerException
在视图层次结构中从此组件开始,搜索 clientId 等于参数 clientId 的组件;如果找到,则以参数 callback 调用 ContextCallback#invokeContextCallback 方法,同时将当前 FacesContext 和找到的组件作为参数传递。此方法与 #findComponent 类似,但它不支持前导 NamingContainer#SEPARATOR_CHAR 语法用于从视图的根进行搜索。
默认实现将首先检查 this.getClientId() 是否等于参数 clientId。如果等于,以参数 callback 调用 ContextCallback#invokeContextCallback 方法,同时传递 FacesContext 参数并将此 clientId 作为组件参数传递。如果回调抛出 Exception,则在 FacesException 中包装它并将其重新抛出。否则,返回 true。
否则,对 #getFacetsAndChildren 返回的每个组件,调用 invokeOnComponent(),同时按顺序将参数传递给此方法。invokeOnComponent() 首次返回 true 时,将中止遍历 Iterator 的其余部分并返回 true。
对于在参数 clientId 中找到的任何状态,当调用 ContextCallback#invokeContextCallback 时,此方法的实现必须保证传递给回调的组件状态正确反映组件在视图层次结构中的位置。例如,像 UIData 之类的迭代组件将需要设置其行索引,以正确反映参数 clientId,然后再查找正确行支持的相应子组件。当回调正常返回或抛出 Exception 时,此方法的实现必须将视图状态恢复到调用回调前的状态。
如果 #getFacetsAndChildren 的任何一个元素都没有从 invokeOnComponent() 中返回 true,则返回 false。
一个简单的用法示例是通过 clientId 查找组件。
private UIComponent found = null;
private void doFind(FacesContext context, String clientId) {
context.getViewRoot().invokeOnComponent(context, clientId,
new ContextCallback() {
public void invokeOnComponent(FacesContext context,
UIComponent component) {
found = component;
}
});
}
| since | 1.2 |
| Throws | NullPointerException: NullPointerException 如果任何参数为 null |
| Throws | FacesException:
NullPointerException
如果参数 Callback 抛出 Exception,则将在 FacesException 中包装它并将其重新抛出。 |
invokeOnComponent
public boolean invokeOnComponent(FacesContext context, String clientId, ContextCallback callback) throws FacesException
Starting at this component in the View hierarchy, search for a component with a
clientIdequal to the argumentclientIdand, if found, call theContextCallback.invokeContextCallback(javax.faces.context.FacesContext, javax.faces.component.UIComponent)method on the argumentcallback, passing the currentFacesContextand the found component as arguments. This method is similar toUIComponent.findComponent(java.lang.String)but it does not support the leadingNamingContainer.SEPARATOR_CHARsyntax for searching from the root of the View.The default implementation will first check if
this.getClientId()is equal to the argumentclientId. If so, call theContextCallback.invokeContextCallback(javax.faces.context.FacesContext, javax.faces.component.UIComponent)method on the argument callback, passing through theFacesContextargument and passing this as the component argument. If anExceptionis thrown by the callback, wrap it in aFacesExceptionand re-throw it. Otherwise, returntrue.Otherwise, for each component returned by
UIComponent.getFacetsAndChildren(), callinvokeOnComponent()passing the arguments to this method, in order. The first timeinvokeOnComponent()returns true, abort traversing the rest of theIteratorand returntrue.When calling
ContextCallback.invokeContextCallback(javax.faces.context.FacesContext, javax.faces.component.UIComponent)the implementation of this method must guarantee that the state of the component passed to the callback correctly reflects the component's position in the View hierarchy with respect to any state found in the argumentclientId. For example, an iterating component such asUIDatawill need to set its row index to correctly reflect the argumentclientIdbefore finding the appropriate child component backed by the correct row. When the callback returns, either normally or by throwing anExceptionthe implementation of this method must restore the state of the view to the way it was before invoking the callback.If none of the elements from
UIComponent.getFacetsAndChildren()returnedtruefrominvokeOnComponent(), returnfalse.Simple usage example to find a component by
clientId.private UIComponent found = null; private void doFind(FacesContext context, String clientId) { context.getViewRoot().invokeOnComponent(context, clientId, new ContextCallback() { public void invokeOnComponent(FacesContext context, UIComponent component) { found = component; } }); }- Overrides:
invokeOnComponentin classUIComponent
- Parameters:
context- theFacesContextfor the current requestclientId- the client identifier of the component to be passed to the argument callback.callback- an implementation of the Callback interface.- Returns:
trueif the a component with the givenclientIdis found, the callback method was successfully invoked passing that component as an argument, and no Exception was thrown. Returnsfalseif no component with the givenclientIdis found.- Throws:
NullPointerException- if any of the arguments are nullFacesException- if the argument Callback throws an Exception, it is wrapped in aFacesExceptionand re-thrown.- Since:
- 1.2
public java.util.Map<K, V>
getFacets()
英文文档:
getFacets
public Map<String,UIComponent> getFacets()
- Description copied from class:
UIComponent Return a mutable
Maprepresenting the facetUIComponents associated with thisUIComponent, keyed by facet name (which must be a String). The returned implementation must support all of the standard and optionalMapmethods, plus support the following additional requirements:- The
Mapimplementation must implement thejava.io.Serializableinterface. - Any attempt to add a
nullkey or value must throw a NullPointerException. - Any attempt to add a key that is not a String must throw a ClassCastException.
- Any attempt to add a value that is not a
UIComponentmust throw a ClassCastException. - Whenever a new facet
UIComponentis added:- The
parentproperty of the component must be set to this component instance. - If the
parentproperty of the component was already non-null, the component must first be removed from its previous parent (where it may have been either a child or a facet).
- The
- Whenever an existing facet
UIComponentis removed:- The
parentproperty of the facet must be set tonull.
- The
- The
- Specified by:
getFacetsin classUIComponent
public int
getFacetCount()
英文文档:
getFacetCount
public int getFacetCount()
- Description copied from class:
UIComponent Return the number of facet
UIComponents that are associated with thisUIComponent. If there are no facets, this method must return 0. The method must not cause the creation of a facet component map.For backwards compatability with classes that extend UIComponent directly, a default implementation is provided that simply calls
UIComponent.getFacets()and then calls thesize()method on the returnedMap. A more optimized version of this method is provided ingetFacetCount().- Overrides:
getFacetCountin classUIComponent
public UIComponent
getFacet(String name)
英文文档:
getFacet
public UIComponent getFacet(String name)
- Description copied from class:
UIComponent Convenience method to return the named facet, if it exists, or
nullotherwise. If the requested facet does not exist, the facets Map must not be created.- Specified by:
getFacetin classUIComponent
- Parameters:
name- Name of the desired facet
public java.util.Iterator<E>
getFacetsAndChildren()
英文文档:
getFacetsAndChildren
public Iterator<UIComponent> getFacetsAndChildren()
- Description copied from class:
UIComponent Return an
Iteratorover the facet followed by childUIComponents of thisUIComponent. Facets are returned in an undefined order, followed by all the children in the order they are stored in the child list. If this component has no facets or children, an emptyIteratoris returned.The returned
Iteratormust not support theremove()operation.- Specified by:
getFacetsAndChildrenin classUIComponent
public void
broadcast(FacesEvent event) throws AbortProcessingException
| Throws | AbortProcessingException: NullPointerException 通知 JavaServer Face 实现不应该继续处理当前事件 |
| Throws | IllegalStateException: NullPointerException |
| Throws | NullPointerException:
NullPointerException
如果 event 为 null |
broadcast
public void broadcast(FacesEvent event) throws AbortProcessingException
- Description copied from class:
UIComponent Broadcast the specified
FacesEventto all registered event listeners who have expressed an interest in events of this type. Listeners are called in the order in which they were added.- Specified by:
broadcastin classUIComponent
- Parameters:
event- TheFacesEventto be broadcast- Throws:
AbortProcessingException- Signal the JavaServer Faces implementation that no further processing on the current event should be performedIllegalStateExceptionNullPointerException- ifeventisnull
public void
decode(FacesContext context)
| Throws | NullPointerException:
NullPointerException
如果 context 为 null |
decode
public void decode(FacesContext context)
- Description copied from class:
UIComponent Decode any new state of this
UIComponentfrom the request contained in the specifiedFacesContext, and store this state as needed.During decoding, events may be enqueued for later processing (by event listeners who have registered an interest), by calling
queueEvent().- Specified by:
decodein classUIComponent
- Parameters:
context-FacesContextfor the request we are processing- Throws:
NullPointerException- ifcontextisnull
public void
encodeBegin(FacesContext context) throws java.io.IOException
| Throws | NullPointerException:
NullPointerException
如果 context 为 null |
encodeBegin
public void encodeBegin(FacesContext context) throws IOException
- Description copied from class:
UIComponent If our
renderedproperty istrue, render the beginning of the current state of thisUIComponentto the response contained in the specifiedFacesContext.If a
Rendereris associated with thisUIComponent, the actual encoding will be delegated toRenderer.encodeBegin(FacesContext, UIComponent).- Specified by:
encodeBeginin classUIComponent
- Parameters:
context-FacesContextfor the response we are creating- Throws:
NullPointerException- ifcontextisnullIOException- if an input/output error occurs while rendering
public void
encodeChildren(FacesContext context) throws java.io.IOException
| Throws | NullPointerException:
NullPointerException
如果 context 为 null |
encodeChildren
public void encodeChildren(FacesContext context) throws IOException
- Description copied from class:
UIComponent If our
renderedproperty istrue, render the childUIComponents of thisUIComponent. This method will only be called if therendersChildrenproperty istrue.If a
Rendereris associated with thisUIComponent, the actual encoding will be delegated toRenderer.encodeChildren(FacesContext, UIComponent).- Specified by:
encodeChildrenin classUIComponent
- Parameters:
context-FacesContextfor the response we are creating- Throws:
NullPointerException- ifcontextisnullIOException- if an input/output error occurs while rendering
public void
encodeEnd(FacesContext context) throws java.io.IOException
| Throws | java.io.IOException: NullPointerException 如果呈现期间发生输入/输出错误 |
| Throws | NullPointerException:
NullPointerException
如果 context 为 null |
encodeEnd
public void encodeEnd(FacesContext context) throws IOException
- Description copied from class:
UIComponent If our
renderedproperty istrue, render the ending of the current state of thisUIComponent.If a
Rendereris associated with thisUIComponent, the actual encoding will be delegated toRenderer.encodeEnd(FacesContext, UIComponent).- Specified by:
encodeEndin classUIComponent
- Parameters:
context-FacesContextfor the response we are creating- Throws:
IOException- if an input/output error occurs while renderingNullPointerException- ifcontextisnull
protected void
addFacesListener(FacesListener listener)
将指定的 FacesListener 添加到注册了接收此 UIComponent 事件通知的侦听器集合。预计作为事件源的 UIComponent 类将具有相应的类型安全 API 用于注册所需类型的侦听器,并且这些注册方法的实现将委托给此方法。例如:
public class FooEvent extends FacesEvent {
...
protected boolean isAppropriateListener(FacesListener listener) {
return (listener instanceof FooListener);
}
protected void processListener(FacesListener listener) {
((FooListener) listener).processFoo(this);
}
...
}
public interface FooListener extends FacesListener {
public void processFoo(FooEvent event);
}
public class FooComponent extends UIComponentBase {
...
public void addFooListener(FooListener listener) {
addFacesListener(listener);
}
public void removeFooListener(FooListener listener) {
removeFacesListener(listener);
}
...
}
| listener |
要注册的 FacesListener |
| Throws | NullPointerException:
如果 listener 为 null |
addFacesListener
protected void addFacesListener(FacesListener listener)
Add the specified
FacesListenerto the set of listeners registered to receive event notifications from thisUIComponent. It is expected thatUIComponentclasses acting as event sources will have corresponding typesafe APIs for registering listeners of the required type, and the implementation of those registration methods will delegate to this method. For example:public class FooEvent extends FacesEvent { ... protected boolean isAppropriateListener(FacesListener listener) { return (listener instanceof FooListener); } protected void processListener(FacesListener listener) { ((FooListener) listener).processFoo(this); } ... } public interface FooListener extends FacesListener { public void processFoo(FooEvent event); } public class FooComponent extends UIComponentBase { ... public void addFooListener(FooListener listener) { addFacesListener(listener); } public void removeFooListener(FooListener listener) { removeFacesListener(listener); } ... }- Specified by:
addFacesListenerin classUIComponent
- Parameters:
listener- TheFacesListenerto be registered- Throws:
NullPointerException- iflistenerisnull
protected FacesListener[]
getFacesListeners(Class<T> clazz)
| Throws | IllegalArgumentException:
NullPointerException
如果 clazz 不是 FacesListener 并且未实现 FacesListener |
| Throws | NullPointerException:
NullPointerException
如果 clazz 为 null |
getFacesListeners
protected FacesListener[] getFacesListeners(Class clazz)
- Description copied from class:
UIComponent Return an array of registered
FacesListeners that are instances of the specified class. If there are no such registered listeners, a zero-length array is returned. The returned array can be safely be cast to an array strongly typed to an element type ofclazz.- Specified by:
getFacesListenersin classUIComponent
- Parameters:
clazz- Class that must be implemented by aFacesListenerfor it to be returned- Throws:
IllegalArgumentException- ifclassis not, and does not implement,FacesListenerNullPointerException- ifclazzisnull
protected void
removeFacesListener(FacesListener listener)
从注册接收此 UIComponent 事件通知的侦听器集合中移除指定的 FacesListener。
| listener |
要取消注册的 FacesListener |
| Throws | NullPointerException:
如果 listener 为 null |
removeFacesListener
protected void removeFacesListener(FacesListener listener)
Remove the specified
FacesListenerfrom the set of listeners registered to receive event notifications from thisUIComponent.- Specified by:
removeFacesListenerin classUIComponent
- Parameters:
listener- TheFacesListenerto be deregistered- Throws:
NullPointerException- iflistenerisnull
public void
queueEvent(FacesEvent event)
| Throws | IllegalStateException:
NullPointerException
如果此组件不是 UIViewRoot 的后代 |
| Throws | NullPointerException:
NullPointerException
如果 event 为 null |
queueEvent
public void queueEvent(FacesEvent event)
- Description copied from class:
UIComponent Queue an event for broadcast at the end of the current request processing lifecycle phase. The default implementation in
UIComponentBasemust delegate this call to thequeueEvent()method of the parentUIComponent.- Specified by:
queueEventin classUIComponent
- Parameters:
event-FacesEventto be queued- Throws:
IllegalStateException- if this component is not a descendant of aUIViewRootNullPointerException- ifeventisnull
public void
processDecodes(FacesContext context)
| Throws | NullPointerException:
NullPointerException
如果 context 为 null |
processDecodes
public void processDecodes(FacesContext context)
- Description copied from class:
UIComponent Perform the component tree processing required by the Apply Request Values phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows.
- If the
renderedproperty of thisUIComponentisfalse, skip further processing. - Call the
processDecodes()method of all facets and children of thisUIComponent, in the order determined by a call togetFacetsAndChildren(). - Call the
decode()method of this component. - If a
RuntimeExceptionis thrown during decode processing, callFacesContext.renderResponse()and re-throw the exception.
- If the
- Specified by:
processDecodesin classUIComponent
- Parameters:
context-FacesContextfor the request we are processing- Throws:
NullPointerException- ifcontextisnull
public void
processValidators(FacesContext context)
| Throws | NullPointerException:
NullPointerException
如果 context 为 null |
processValidators
public void processValidators(FacesContext context)
- Description copied from class:
UIComponent Perform the component tree processing required by the Process Validations phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows.
- If the
renderedproperty of thisUIComponentisfalse, skip further processing. - Call the
processValidators()method of all facets and children of thisUIComponent, in the order determined by a call togetFacetsAndChildren().
- If the
- Specified by:
processValidatorsin classUIComponent
- Parameters:
context-FacesContextfor the request we are processing- Throws:
NullPointerException- ifcontextisnull
public void
processUpdates(FacesContext context)
| Throws | NullPointerException:
NullPointerException
如果 context 为 null |
processUpdates
public void processUpdates(FacesContext context)
- Description copied from class:
UIComponent Perform the component tree processing required by the Update Model Values phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows.
- If the
renderedproperty of thisUIComponentisfalse, skip further processing. - Call the
processUpdates()method of all facets and children of thisUIComponent, in the order determined by a call togetFacetsAndChildren().
- If the
- Specified by:
processUpdatesin classUIComponent
- Parameters:
context-FacesContextfor the request we are processing- Throws:
NullPointerException- ifcontextisnull
public Object
processSaveState(FacesContext context)
| Throws | NullPointerException:
NullPointerException
如果 context 为 null |
processSaveState
public Object processSaveState(FacesContext context)
- Description copied from class:
UIComponent Perform the component tree processing required by the state saving portion of the Render Response phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows.
- consult the
transientproperty of this component. If true, just returnnull. - Call the
processSaveState()method of all facets and children of thisUIComponentin the order determined by a call togetFacetsAndChildren(), skipping children and facets that are transient. - Call the
saveState()method of this component. - Encapsulate the child state and your state into a Serializable Object and return it.
This method may not be called if the state saving method is set to server.
- consult the
- Specified by:
processSaveStatein classUIComponent
- Parameters:
context-FacesContextfor the request we are processing- Throws:
NullPointerException- ifcontextisnull
public void
processRestoreState(FacesContext context, Object state)
| Throws | NullPointerException:
NullPointerException
如果 context 为 null |
processRestoreState
public void processRestoreState(FacesContext context, Object state)
- Description copied from class:
UIComponent Perform the component tree processing required by the Restore View phase of the request processing lifecycle for all facets of this component, all children of this component, and this component itself, as follows.
- Call the
processRestoreState()method of all facets and children of thisUIComponentin the order determined by a call togetFacetsAndChildren(). - Call the
restoreState()method of this component.
This method may not be called if the state saving method is set to server.
- Call the
- Specified by:
processRestoreStatein classUIComponent
- Parameters:
context-FacesContextfor the request we are processing- Throws:
NullPointerException- ifcontextisnull
protected FacesContext
getFacesContext()
英文文档:
getFacesContext
protected FacesContext getFacesContext()
- Description copied from class:
UIComponent Convenience method to return the
FacesContextinstance for the current request.- Specified by:
getFacesContextin classUIComponent
protected Renderer
getRenderer(FacesContext context)
英文文档:
getRenderer
protected Renderer getRenderer(FacesContext context)
- Description copied from class:
UIComponent Convenience method to return the
Rendererinstance associated with this component, if any; otherwise, returnnull.- Specified by:
getRendererin classUIComponent
- Parameters:
context-FacesContextfor the current request
public Object
saveState(FacesContext context)
英文文档:
saveState
public Object saveState(FacesContext context)
- Description copied from interface:
StateHolder Gets the state of the instance as a
SerializableObject.If the class that implements this interface has references to instances that implement StateHolder (such as a
UIComponentwith event handlers, validators, etc.) this method must call theStateHolder.saveState(javax.faces.context.FacesContext)method on all those instances as well. This method must not save the state of children and facets. That is done via theStateManagerThis method must not alter the state of the implementing object. In other words, after executing this code:
Object state = component.saveState(facesContext);
componentshould be the same as before executing it.The return from this method must be
Serializable
public void
restoreState(FacesContext context, Object state)
英文文档:
restoreState
public void restoreState(FacesContext context, Object state)
- Description copied from interface:
StateHolder Perform any processing required to restore the state from the entries in the state Object.
If the class that implements this interface has references to instances that also implement StateHolder (such as a
UIComponentwith event handlers, validators, etc.) this method must call theStateHolder.restoreState(javax.faces.context.FacesContext, java.lang.Object)method on all those instances as well.
public boolean
isTransient()
英文文档:
isTransient
public boolean isTransient()
- Description copied from interface:
StateHolder If true, the Object implementing this interface must not participate in state saving or restoring.
public void
setTransient(boolean transientFlag)
英文文档:
setTransient
public void setTransient(boolean transientFlag)
- Description copied from interface:
StateHolder Denotes whether or not the Object implementing this interface must or must not participate in state saving or restoring.
- Parameters:
transientFlag- boolean passtrueif this Object will participate in state saving or restoring, otherwise passfalse.
public static Object
saveAttachedState(FacesContext context, Object attachedObject)
此方法由要保存一个或多个连接对象的 UIComponent 子类调用。这是个便捷方法,完成保存可能实现也可能不实现 StateHolder 接口的连接对象的工作。使用此方法意味着使用 #restoreAttachedState 恢复连接对象。
此方法支持保存下列类型的连接对象:这些对象的 Object、null 值和 Lists。如果任何包含的对象不是 Lists 且没有实现 StateHolder,则它们必须有不带参数的公共构造方法。返回对象的确切结构是未定义和透明的,但可进行序列化。
| context |
此请求的 FacesContext。 |
| attachedObject |
对象,可能是 List 实例或 Object。attachedObject(或包含 attachedObject 的元素)可以实现 StateHolder。 |
| Throws | NullPointerException: 如果上下文参数为 null。 |
saveAttachedState
public static Object saveAttachedState(FacesContext context, Object attachedObject)
This method is called by
UIComponentsubclasses that want to save one or more attached objects. It is a convenience method that does the work of saving attached objects that may or may not implement theStateHolderinterface. Using this method implies the use ofrestoreAttachedState(javax.faces.context.FacesContext, java.lang.Object)to restore the attached objects.This method supports saving attached objects of the following type:
Objects,nullvalues, andListsof these objects. If any contained objects are notListsand do not implementStateHolder, they must have zero-argument public constructors. The exact structure of the returned object is undefined and opaque, but will be serializable.- Parameters:
context- theFacesContextfor this request.attachedObject- the object, which may be aListinstance, or an Object. TheattachedObject(or the elements that compriseattachedObjectmay implementStateHolder.- Throws:
NullPointerException- if the context argument is null.
public static Object
restoreAttachedState(FacesContext context, Object stateObj) throws IllegalStateException
此方法由 UIComponent 子类调用,该子类需要恢复它们使用 #saveAttachedState 保存的对象。此方法与 #saveAttachedState 紧密耦合。
此方法支持恢复 #saveAttachedState 支持的所有连接对象类型。
| context |
此请求的 FacesContext |
| stateObj |
从 #saveAttachedState 返回的透明对象 |
| Throws | NullPointerException: 如果 context 为 null。 |
| Throws | IllegalStateException:
如果该对象不是以前由 #saveAttachedState 返回的。 |
restoreAttachedState
public static Object restoreAttachedState(FacesContext context, Object stateObj) throws IllegalStateException
This method is called by
UIComponentsubclasses that need to restore the objects they saved usingsaveAttachedState(javax.faces.context.FacesContext, java.lang.Object). This method is tightly coupled withsaveAttachedState(javax.faces.context.FacesContext, java.lang.Object).This method supports restoring all attached objects types supported by
saveAttachedState(javax.faces.context.FacesContext, java.lang.Object).- Parameters:
context- theFacesContextfor this requeststateObj- the opaque object returned fromsaveAttachedState(javax.faces.context.FacesContext, java.lang.Object)- Throws:
NullPointerException- if context is null.IllegalStateException- if the object is not previously returned bysaveAttachedState(javax.faces.context.FacesContext, java.lang.Object).
|
|
|||||||||
| 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 : 未经我党受权你也可自由散发此文档。 如有任何错误请自行修正;若因此而造成任何损失请直接找人民主席,请勿与本人联系。谢谢!
