Project Documentation

Summary

Tag name: <tr:setActionListener>

The setActionListener tag is a declarative way to allow an action source (<commandButton>, <commandLink>, etc.) to set a value before navigation. It is perhaps most useful in conjunction with the "processScope" EL scope provided by ADF Faces, as it makes it possible to pass details from one page to another without writing any Java code. This tag can be used both with ADF Faces commands and JSF standard tags. More generally, it can be used with any component at all that implements the standard ActionSource interface. Note that JSF comes with a <tr:setPropertyActionListener>, which does exactly the same.

Example:

This example shows a table with a "Show..." button. When the button is pressed, the following will happen:

  1. The value of "#{row}" will be retrieved - which corresponds to the current row in the table.
  2. That object will get stored as the "detail" property in process scope.
  3. The user will navigate to the "showDetail" outcome of this page (because of the "action" property on the <h:commandButton>).
The target page can then retrieve the detail object from the process scope and use it as needed.
            <h:dataTable var="row" value="#{....}">
              ...
              <h:column>
                <h:commandButton value="Show..." action="showDetail" ..>
                  <tr:setActionListener from="#{row}"
                                        to="#{processScope.detail}"/>
                </h:commandButton>
              </h:column>
            </h:dataTable>

Attributes

Name Type Supports EL? Description
fromObjectYes the source of the value; can be an EL expression or a constant value
toObjectOnly EL the target for the value; must be an EL expression