| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <!-- $Id$ --> |
| <html> |
| <head> |
| <title>contrib:Choose</title> |
| <link rel="stylesheet" type="text/css" href="Tapestry.css" title="style"> |
| </head> |
| |
| <body> |
| <table border="0" cellpadding="0" cellspacing="0" width="100%"> |
| <tr> |
| <td align="left"><a href="index.html"><img alt="Component Index" src="common-images/home.png" ></a></td> |
| <td align="right"><a href="contrib.FormConditional.html"><img alt="contrib:FormConditional" src="common-images/next.png"></a></td> |
| <tr> |
| <tr> |
| <td colspan="3"><hr></td> |
| </tr> |
| <tr> |
| <td colspan="3"> |
| <table border="0" cellpadding="4" cellspacing="4" width="100%"> |
| |
| <tr valign="top"> |
| <td> |
| <table> |
| <tr> |
| <td><font size="+2"><b>contrib:Choose</b></font></td> |
| </tr> |
| <tr> |
| <td> |
| <A href="../api/org/apache/tapestry/contrib/components/Choose.html">org.apache.tapestry.contrib.components.Choose</a> |
| </td> |
| </tr> |
| </table> |
| </td> |
| <td> |
| <table align="right" valign="middle" bgcolor="#c0c0c0" cellpadding="8"> |
| <tr> |
| <td> Non Visual Component</td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| |
| <tr valign="center"> |
| <td colspan="2"> </td> |
| </tr> |
| |
| <tr> |
| <td colspan="2"> |
| <p><b>Description</b> <br> |
| The contrib:Choose component is used in conjunction with contrib:When |
| and contrib:Otherwise components to express mutually exclusive conditional |
| tests. <br> |
| <br> |
| The contrib:Choose component must contain one or more contrib:When |
| components and can contain only one optional contrib:Otherwise component |
| (which must occur after all of the contrib:When components). If |
| the contrib:Choose component only contains one contrib: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. |
| <p>Each contrib: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 contrib:When components |
| are ignored. The optional contrib:Otherwise component is also automatically |
| ignored. If none of the conditions in any contrib:When component |
| is satisfied , then the contrib:Otherwise component is automatically |
| selected (if it is present) and the content associated with that |
| element is rendered.</p> |
| The body of the contrib:Choose component can only contain: |
| <ul> |
| <li>White spaces<br>May appear anywhere around the When and Otherwise components.</li> |
| <li>1 or more When components<br>Must all appear before Otherwise.</li> |
| <li>0 or 1 Otherwise component<br>Must be the last component nested within Choose</li> |
| </ul> |
| |
| <p> For simple conditional testing, use the Conditional component. |
| </p> |
| </td> |
| </tr> |
| |
| <tr> |
| <td colspan="2"> |
| <b>See Also</b> |
| <br> |
| <A href="Conditional.html">Conditional</a>, <A href="contrib.When.html">contrib:When</a>, |
| <A href="contrib.Otherwise.html">contrib:Otherwise</a> </td> |
| </tr> |
| |
| <tr> |
| <td colspan="2"> |
| <b>Parameters</b> |
| <br> |
| <table border="1" cellpadding="4" cellspacing="4" class="parameters"> |
| <tr> |
| <th>Name</th> |
| <th>Type</th> |
| <th>Direction</th> |
| <th>Required</th> |
| <th>Default</th> |
| <th>Description</th> |
| </tr> |
| <tr> |
| <td>condition</td> |
| <td>boolean</td> |
| <td>in</td> |
| <td>no</td> |
| <td>false</td> |
| <td>The condition to be met. If this value is true, then the wrapped |
| elements will be rendered. |
| </td> |
| </tr> |
| <tr> |
| <td>element</td> |
| <td>String</td> |
| <td>in</td> |
| <td>no</td> |
| <td> </td> |
| <td>If specified, then the component acts like an <a href="Any.html">Any</a>, |
| emitting an open and close tag. Informal parameters are applied |
| to the tag. If no element is specified, informal parameters |
| are ignored.</td> |
| </tr> |
| </table> |
| <p> Body: <STRONG>rendered<BR> |
| </STRONG> Informal parameters: <strong>allowed</strong><br> |
| Reserved parameters: <EM>invert</EM></p> |
| |
| </td> |
| </tr> |
| |
| <tr> |
| <td colspan="2"> |
| <b>Examples</b> |
| <p> The following sample code shows how the text rendered depends |
| on a user’s membership category. |
| <pre> |
| |
| <span jwcid="@<a href="contrib.Choose.html">contrib:Choose</a>> |
| <span jwcid="@<a href="contrib.When.html">contrib:When</a>" condition='ognl:"visitor".equals(user.category)'> |
| ... |
| </span> |
| <span jwcid="@<a href="contrib.When.html">contrib:When</a>" condition='ognl:"member".equals(user.category)'> |
| ... |
| </span> |
| <span jwcid="@<a href="contrib.When.html">contrib:When</a>" condition='ognl:"customer".equals(user.category)'> |
| <span jwcid="@<a href="contrib.Choose.html">contrib:Choose</a>> |
| <span jwcid="@<a href="contrib.When.html">contrib:When</a>" condition='ognl:"person".equals(user.profile)'> |
| ... |
| </span> |
| <span jwcid="@<a href="contrib.When.html">contrib:When</a>" condition='ognl:"enterprise".equals(user.profile)'> |
| ... |
| </span> |
| </span> |
| </span> |
| <span jwcid="@<a href="contrib.Otherwise.html">contrib:Otherwise</a>"> |
| ... |
| </span> |
| </span> |
| </pre> |
| An if/then/else statement can be easily achieved as follows: |
| <pre> |
| |
| <span jwcid="@<a href="contrib.Choose.html">contrib:Choose</a>"> |
| <span jwcid="@<a href="contrib.When.html">contrib:When</a>" condition="ognl: count == 0"> |
| Your search did not match any documents. |
| </span> |
| <span jwcid="@<a href="contrib.Otherwise.html">contrib:Otherwise</a>"> |
| <span jwcid="@Insert" value="ognl: count">51</span>&nbsp;documents matched your selection. |
| </span> |
| </span> |
| </pre> |
| |
| |
| </td></tr></table> |
| </td></tr> |
| <tr> |
| <td colspan="3"><hr></td> |
| </tr> |
| <tr> |
| <td align="left"><a href="index.html"><img alt="Component Index" src="common-images/home.png" ></a></td> |
| <td align="right"><a href="contrib.FormConditional.html"><img alt="contrib:FormConditional" src="common-images/next.png"></a></td> |
| </tr> |
| </table> |
| |
| </body> |
| </html> |