Class MethodExpressionActionListener
- java.lang.Object
-
- jakarta.faces.event.MethodExpressionActionListener
-
- All Implemented Interfaces:
StateHolder
,ActionListener
,FacesListener
,EventListener
public class MethodExpressionActionListener extends Object implements ActionListener, StateHolder
MethodExpressionActionListener is an
ActionListener
that wraps aMethodExpression
. When it receives aActionEvent
, it executes a method on an object identified by theMethodExpression
.
-
-
Field Summary
-
Fields inherited from interface jakarta.faces.event.ActionListener
TO_FLOW_DOCUMENT_ID_ATTR_NAME
-
-
Constructor Summary
Constructors Constructor Description MethodExpressionActionListener()
MethodExpressionActionListener(MethodExpression methodExpressionOneArg)
Construct aValueChangeListener
that contains aMethodExpression
.MethodExpressionActionListener(MethodExpression methodExpressionOneArg, MethodExpression methodExpressionZeroArg)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
isTransient()
If true, the Object implementing this interface must not participate in state saving or restoring.void
processAction(ActionEvent actionEvent)
Call through to theMethodExpression
passed in our constructor.void
restoreState(FacesContext context, Object state)
BothMethodExpression
instances described in the constructor must be restored.Object
saveState(FacesContext context)
BothMethodExpression
instances described in the constructor must be saved.void
setTransient(boolean newTransientValue)
Denotes whether or not the Object implementing this interface must or must not participate in state saving or restoring.
-
-
-
Constructor Detail
-
MethodExpressionActionListener
public MethodExpressionActionListener()
-
MethodExpressionActionListener
public MethodExpressionActionListener(MethodExpression methodExpressionOneArg)
Construct a
ValueChangeListener
that contains aMethodExpression
. To accomodate method expression targets that take no arguments instead of taking anActionEvent
argument, the implementation of this class must take the argumentmethodExpressionOneArg
, extract its expression string, and create anotherMethodExpression
whose expected param types match those of a zero argument method. The usage requirements for both of theseMethodExpression
instances are described inprocessAction(jakarta.faces.event.ActionEvent)
.- Parameters:
methodExpressionOneArg
- aMethodExpression
that points to a method that returnsvoid
and takes a single argument of typeActionEvent
.
-
MethodExpressionActionListener
public MethodExpressionActionListener(MethodExpression methodExpressionOneArg, MethodExpression methodExpressionZeroArg)
-
-
Method Detail
-
processAction
public void processAction(ActionEvent actionEvent) throws AbortProcessingException
Call through to the
MethodExpression
passed in our constructor. First, try to invoke theMethodExpression
passed to the constructor of this instance, passing the argumentActionEvent
as the argument. If aMethodNotFoundException
is thrown, call to the zero argumentMethodExpression
derived from theMethodExpression
passed to the constructor of this instance. If that fails for any reason, throw anAbortProcessingException
, including the cause of the failure.- Specified by:
processAction
in interfaceActionListener
- Parameters:
actionEvent
- TheActionEvent
that has occurred- Throws:
NullPointerException
AbortProcessingException
- Signal the Jakarta Faces implementation that no further processing on the current event should be performed
-
saveState
public Object saveState(FacesContext context)
Both
MethodExpression
instances described in the constructor must be saved.- Specified by:
saveState
in interfaceStateHolder
- Parameters:
context
- the Faces context.- Returns:
- the saved state.
-
restoreState
public void restoreState(FacesContext context, Object state)
Both
MethodExpression
instances described in the constructor must be restored.- Specified by:
restoreState
in interfaceStateHolder
- Parameters:
context
- the Faces context.state
- the state.
-
isTransient
public boolean isTransient()
Description copied from interface:StateHolder
If true, the Object implementing this interface must not participate in state saving or restoring.
- Specified by:
isTransient
in interfaceStateHolder
- Returns:
true
if transient,false
otherwise.
-
setTransient
public void setTransient(boolean newTransientValue)
Description copied from interface:StateHolder
Denotes whether or not the Object implementing this interface must or must not participate in state saving or restoring.
- Specified by:
setTransient
in interfaceStateHolder
- Parameters:
newTransientValue
- boolean passtrue
if this Object will not participate in state saving or restoring, otherwise passfalse
.
-
-