This modules allows to "chain" several other modules. If a module
returns "null" as attribute value, the next module in the chain is
queried until either a value can be obtained or the end of the
chain is reached.
A typical example would be to "chain" request parameters,
session attributes, and constants in this order. This way, an
application could have a default skin that could be overridden by a
user in her/his profile stored in the session. In addition, the
user could request a different skin through passing a request
parameter.
Usage:
Any number of <input-module/> blocks may appear in the
component configuration. The @name attribute is used as the name of
the requested input module. The complete <input-module/>
block is passed at run-time to the module and thus can contain any
configuration data for that particular module.
Configuration:
It can be controlled whether it returns a flat or a deep view,
i.e. whether only values from the first module are returned if
non-null or they are merged with values from other modules
<all-values>true</all-values>. The same is
possible for the attribute names
(<all-names/>). In addition, empty strings could
be treated the same as null values
(<empty-as-null/>).