public class UICommand extends UIComponentBase implements ActionSource2
UICommand is a UIComponent that represents
 a user interface component which, when activated by the user, triggers
 an application specific "command" or "action".  Such a component is
 typically rendered as a push button, a menu item, or a hyperlink.
When the decode() method of this UICommand, or
 its corresponding Renderer, detects that this control has been
 activated, it will queue an ActionEvent.
 Later on, the broadcast() method will ensure that this
 event is broadcast to all interested listeners.
Listeners will be invoked in the following order:
ActionListeners, in the order in which they were registered.
  MethodExpression (which will cover
  the "actionListener" that was set as a MethodBinding).
  ActionListener, retrieved from the
      Application - and therefore, any attached "action"
      MethodExpression.
 By default, the rendererType property must be set to
 "javax.faces.Button".  This value can be changed by calling the
 setRendererType() method.
| Modifier and Type | Field and Description | 
|---|---|
| static String | COMPONENT_FAMILYThe standard component family for this component. | 
| static String | COMPONENT_TYPEThe standard component type for this component. | 
ATTRS_WITH_DECLARED_DEFAULT_VALUES, BEANINFO_KEY, bindings, COMPOSITE_COMPONENT_TYPE_KEY, COMPOSITE_FACET_NAME, CURRENT_COMPONENT, CURRENT_COMPOSITE_COMPONENT, FACETS_KEY, HONOR_CURRENT_COMPONENT_ATTRIBUTES_PARAM_NAME, VIEW_LOCATION_KEY| Constructor and Description | 
|---|
| UICommand()Create a new  UICommandinstance with default property
 values. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addActionListener(ActionListener listener)Add a new  ActionListenerto the set of listeners interested
 in being notified whenActionEvents occur. | 
| void | broadcast(FacesEvent event)In addition to to the default  UIComponent.broadcast(javax.faces.event.FacesEvent)processing, pass theActionEventbeing broadcast to the
 method referenced byactionListener(if any),
 and to the defaultActionListenerregistered on theApplication. | 
| MethodBinding | getAction()Deprecated. 
 This has been replaced by  getActionExpression(). | 
| MethodExpression | getActionExpression()Return the  MethodExpressionpointing at the application
 action to be invoked, if thisUIComponentis activated by
 the user, during the Apply Request Values or Invoke
 Application phase of the request processing lifecycle,
 depending on the value of theimmediateproperty. | 
| MethodBinding | getActionListener()Deprecated. 
 Use  getActionListeners()instead. | 
| ActionListener[] | getActionListeners()Return the set of registered  ActionListeners for thisActionSourceinstance. | 
| String | getFamily()Return the identifier of the component family to which this
 component belongs. | 
| Object | getValue()Returns the  valueproperty of theUICommand. | 
| boolean | isImmediate()The immediate flag. | 
| void | queueEvent(FacesEvent e)Intercept  queueEventand take the following
 action. | 
| void | removeActionListener(ActionListener listener)Remove an existing  ActionListener(if any) from the set of
 listeners interested in being notified whenActionEvents
 occur. | 
| void | setAction(MethodBinding action)Deprecated. 
 This has been replaced by  setActionExpression(javax.el.MethodExpression). | 
| void | setActionExpression(MethodExpression actionExpression)Set the  MethodExpressionpointing at the appication
 action to be invoked, if thisUIComponentis activated by
 the user, during the Apply Request Values or Invoke
 Application phase of the request processing lifecycle,
 depending on the value of theimmediateproperty. | 
| void | setActionListener(MethodBinding actionListener)Deprecated. 
 This has been replaced by  addActionListener(javax.faces.event.ActionListener). | 
| void | setImmediate(boolean immediate)Set the "immediate execution" flag for this  UIComponent. | 
| void | setValue(Object value)Sets the  valueproperty of theUICommand. | 
addClientBehavior, addFacesListener, clearInitialState, decode, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributes, getChildCount, getChildren, getClientBehaviors, getClientId, getDefaultEventName, getEventNames, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacets, getFacetsAndChildren, getId, getListenersForEventClass, getParent, getPassThroughAttributes, getRenderer, getRendererType, getRendersChildren, getValueBinding, invokeOnComponent, isRendered, isTransient, markInitialState, processDecodes, processRestoreState, processSaveState, processUpdates, processValidators, removeFacesListener, restoreAttachedState, restoreState, saveAttachedState, saveState, setId, setParent, setRendered, setRendererType, setTransient, setValueBinding, subscribeToEvent, unsubscribeFromEventencodeAll, getClientId, getCompositeComponentParent, getContainerClientId, getCurrentComponent, getCurrentCompositeComponent, getNamingContainer, getPassThroughAttributes, getResourceBundleMap, getStateHelper, getStateHelper, getTransientStateHelper, getTransientStateHelper, getValueExpression, initialStateMarked, isCompositeComponent, isInView, isVisitable, popComponentFromEL, processEvent, pushComponentToEL, restoreTransientState, saveTransientState, setInView, setValueExpression, visitTreepublic static final String COMPONENT_TYPE
The standard component type for this component.
public static final String COMPONENT_FAMILY
The standard component family for this component.
public UICommand()
Create a new UICommand instance with default property
 values.
public String getFamily()
UIComponentReturn the identifier of the component family to which this
 component belongs.  This identifier, in conjunction with the value
 of the rendererType property, may be used to select
 the appropriate Renderer for this component instance.
getFamily in class UIComponentpublic MethodBinding getAction()
getActionExpression().If the implementing class also implements ActionSource2, the implementation of this method must call
 through to ActionSource2.getActionExpression() and examine
 the result.  If the result came from a previous call to ActionSource.setAction(javax.faces.el.MethodBinding), extract the MethodBinding from it and
 return it.  Otherwise, wrap the returned MethodExpression in a MethodBinding
 implementation, and return it.
If the implementing class does not implement
 ActionSource2, return the MethodBindingpointing at the application action to be invoked,
 if this UIComponent is activated by the user, during the
 Apply Request Values or Invoke Application
 phase of the request processing lifecycle, depending on the value
 of the immediate property.
getAction in interface ActionSourcepublic void setAction(MethodBinding action)
setActionExpression(javax.el.MethodExpression).If the implementing class also implements ActionSource2, the implementation of this method must wrap the
 argument action in a class that implements MethodExpression and call through to ActionSource2.setActionExpression(javax.el.MethodExpression), passing the wrapped
 action.
If the implementing class does not implement
 ActionSource2, set the MethodBinding
 pointing at the appication action to be invoked, if this UIComponent is activated by the user, during the Apply
 Request Values or Invoke Application phase of the
 request processing lifecycle, depending on the value of the
 immediate property.
Any method referenced by such an expression must be public, with
 a return type of String, and accept no parameters.
setAction in interface ActionSourceaction - The new MethodBinding expressionpublic MethodBinding getActionListener()
getActionListeners() instead.If ActionSource.setActionListener(javax.faces.el.MethodBinding) was not previously called
 for this instance, this method must return null.  If
 it was called, this method must return the exact
 MethodBinding instance that was passed to ActionSource.setActionListener(javax.faces.el.MethodBinding).
 The method to be invoked, if this UIComponent is
 activated by the user, will be called during the Apply
 Request Values or Invoke Application phase of the
 request processing lifecycle, depending upon the value of the
 immediate property.
getActionListener in interface ActionSourcepublic void setActionListener(MethodBinding actionListener)
addActionListener(javax.faces.event.ActionListener).Wrap the argument actionListener in an
 implementation of ActionListener
 and store it in the internal data structure that backs the ActionSource.getActionListeners() method, taking care to over-write any
 instance that was stored by a previous call to
 setActionListener.
Any method referenced by such an expression must be public, with
 a return type of void, and accept a single parameter of
 type ActionEvent.
setActionListener in interface ActionSourceactionListener - The new method binding expressionpublic boolean isImmediate()
The immediate flag.
isImmediate in interface ActionSourcepublic void setImmediate(boolean immediate)
ActionSourceSet the "immediate execution" flag for this UIComponent.
setImmediate in interface ActionSourceimmediate - The new immediate execution flagpublic Object getValue()
Returns the value property of the
 UICommand. This is most often rendered as a label.
public void setValue(Object value)
Sets the value property of the UICommand.
 This is most often rendered as a label.
value - the new valuepublic MethodExpression getActionExpression()
ActionSource2Return the MethodExpression pointing at the application
 action to be invoked, if this UIComponent is activated by
 the user, during the Apply Request Values or Invoke
 Application phase of the request processing lifecycle,
 depending on the value of the immediate
 property.
Note that it's possible that the returned
 MethodExpression is just a wrapper around a
 MethodBinding instance whith was set by a call to
 ActionSource.setAction(javax.faces.el.MethodBinding).  This makes it possible for the
 default ActionListener to continue to work properly with
 older components.
getActionExpression in interface ActionSource2public void setActionExpression(MethodExpression actionExpression)
ActionSource2Set the MethodExpression pointing at the appication
 action to be invoked, if this UIComponent is activated by
 the user, during the Apply Request Values or Invoke
 Application phase of the request processing lifecycle,
 depending on the value of the immediate
 property.
Any method referenced by such an expression must be public, with
 a return type of String, and accept no parameters.
setActionExpression in interface ActionSource2actionExpression - The new method expressionpublic void addActionListener(ActionListener listener)
ActionSourceAdd a new ActionListener to the set of listeners interested
 in being notified when ActionEvents occur.
addActionListener in interface ActionSourcelistener - The ActionListener to be addedNullPointerException - if listener
  is nullpublic ActionListener[] getActionListeners()
ActionSourceReturn the set of registered ActionListeners for this
 ActionSource instance.  If there are no registered listeners,
 a zero-length array is returned.
getActionListeners in interface ActionSourcepublic void removeActionListener(ActionListener listener)
ActionSourceRemove an existing ActionListener (if any) from the set of
 listeners interested in being notified when ActionEvents
 occur.
removeActionListener in interface ActionSourcelistener - The ActionListener to be removedNullPointerException - if listener
  is nullpublic void broadcast(FacesEvent event) throws AbortProcessingException
In addition to to the default UIComponent.broadcast(javax.faces.event.FacesEvent)
 processing, pass the ActionEvent being broadcast to the
 method referenced by actionListener (if any),
 and to the default ActionListener registered on the
 Application.
broadcast in class UIComponentBaseevent - FacesEvent to be broadcastAbortProcessingException - Signal the JavaServer Faces
  implementation that no further processing on the current event
  should be performedIllegalArgumentException - if the implementation class
  of this FacesEvent is not supported by this componentNullPointerException - if event is
 nullpublic void queueEvent(FacesEvent e)
Intercept queueEvent and take the following
 action.  If the event is an ActionEventUIComponent instance from the event.  If
 the component is an ActionSourcePhaseId.APPLY_REQUEST_VALUES otherwise, mark the
 phaseId to be PhaseId.INVOKE_APPLICATION.  The event
 must be passed on to super.queueEvent() before
 returning from this method.
queueEvent in class UIComponentBasee - FacesEvent to be queuedCopyright © 1996-2015, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.