On a Jakarta Faces command component, immediate="true" moves the command event—and its action handling—to the Apply Request Values phase instead of the usual Invoke Application phase. That earlier timing is useful for commands such as Cancel that should navigate away even when ordinary form fields are invalid. It does not mean that every validation rule on the page is universally switched off.
What counts as a JSF command component?
<h:commandButton> and <h:commandLink> are standard Jakarta Faces command tags. A command button submits a form; a command link submits a request through the Faces component lifecycle. Commands commonly invoke an action method or perform navigation. The Jakarta EE Tutorial describes these command components and their use.
What changes when a command is immediate?
For UICommand, the Jakarta Faces 3.0 specification defines immediate as controlling when the default ActionListener executes. Its default is false: the command event is handled during Invoke Application. When it is true, the event is broadcast during Apply Request Values, earlier in the lifecycle. See the Jakarta Faces 3.0 specification.
| Setting | Lifecycle effect | What to take from it |
|---|---|---|
Command immediate="false" (the UICommand default in Faces 3.0) |
The action event is handled during Invoke Application. | The command follows the earlier lifecycle processing. |
Command immediate="true" |
The action event is handled during Apply Request Values. | Use when the command needs to be handled early, often for cancel or navigation. |
Input immediate="true" |
Changes when that input’s submitted value and related processing or events are handled. | This is not the same setting as making a command’s action early. |
Why use it on a Cancel command?
A user may enter an invalid value in an edit form and then decide to leave without saving. A normal command action is handled later in the lifecycle, after earlier processing such as conversion and validation. If the form’s invalid input prevents the request from reaching the usual action phase, the user’s cancel action may not run as intended.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitches#1 Best Overall
Making the command immediate moves its event handling to Apply Request Values. A cancel action can then navigate away without waiting for the ordinary later input processing to succeed—a common use described by Apache MyFaces. A representative button is:
<h:commandButton value="Cancel" action="#{editBean.cancel}" immediate="true" />
This illustrates the lifecycle behavior; it is not a guarantee about every form configuration or component library. The action method and navigation outcome still need to be implemented for the application.
Rank #2
Does it skip all validation?
Not as a blanket rule. The key effect on a command is earlier action-event timing, not a universal switch that disables every conversion or validation rule on the page. Jakarta EE’s tutorial notes that input components and command components can both have an immediate attribute, and explicitly cautions that their combination determines what happens when the command is activated. Exact behavior depends on the components and their configuration.
In particular, setting immediate="true" on an input is distinct from setting it on a command: the input setting concerns that input’s own submitted value and related events, while the command setting moves the command event earlier. For forms with mixed settings—or components from a third-party library—consult the documentation for the Faces implementation and library version in use.
Quick Recap
Best Value
- Used Book in Good Condition
Rank #4
- Used Book in Good Condition
Rank #3
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

