Component Index contrib:Otherwise

contrib:Choose
org.apache.tapestry.contrib.components.Choose
Non Visual Component
 

Description
The Choose component is used in conjunction with When and Otherwise components to express mutually exclusive conditional tests.

The Choose component must contain one or more When componets and can contain only one optional Otherwise component (which must occur after all of the When components). If the Choose component only contains one When element, then for all practical purposes, it behaves just like the Conditional component. When faced with three or more choices, this component behaves like a switch/case/default statement.

Each When component is examined in the order of occurrence. If and when the condition expression is satisfied the content in that component is rendered. Then all further When components are ignored. The optional Otherwise component is also automatically ignored. If none of the conditions in any When component is satisfied , then the Otherwise component is automatically selected (if it is present) and the content associated with that element is rendered.

The body of the Choose component can only contain:
  • White spaces
    May appear anywhere around the When and Otherwise components.
  • 1 or more When components
    Must all appear before Otherwise.
  • 0 or 1 Otherwise component
    Must be the last component nested within Choose

For simple conditional testing, use the Conditional component.

See Also
Conditional, When, Otherwise
Parameters
None

Body: rendered
Informal parameters: forbidden
Reserved parameters: none

Examples

The following sample code shows how the text rendered depends on a user’s membership category.


              <span jwcid="contrib:Choose>
                 <span jwcid="@contrib:When" condition='ognl:"visitor".equals(user.category)'>
                    ...
                 </span>
                 <span jwcid="@contrib:When" condition='ognl:"member".equals(user.category)'>
                    ...
                 </span>
                 <span jwcid="@contrib:When" condition='ognl:"customer".equals(user.category)'>
                    <span jwcid="contrib:Choose>
                       <span jwcid="@contrib:When" condition='ognl:"person".equals(user.profile)'>
                          ...
                       </span>
                       <span jwcid="@contrib:When" condition='ognl:"enterprise".equals(user.profile)'>
                          ...
                       </span>
                    </span>
                 </span>
                 <span jwcid="@contrib:Otherwise">
                    ...
                 </span>
              </span>
            
An if/then/else statement can be easily achieved as follows:
			
              <span jwcid="@contrib:Choose">
                 <span jwcid="@contrib:When" condition="ognl: count == 0">
                    Your search did not match any documents.
                 </span>
                 <span jwcid="@contrib:Otherwise">
                    <span jwcid="@Insert" value="ognl: count"/> documents matched your selection.
                 </span>
              </span>
			  

Component Index contrib:Otherwise