<html xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>selectManyCheckbox
          (Tobago Core Tag library documentation)
        </title>
<meta name="keywords" content="$title">
<link rel="stylesheet" type="text/css" href="../stylesheet.css" title="Style">
</head>
<script>
            function asd()
            {
            parent.document.title="selectManyCheckbox (Tobago Core Tag library documentation)";
            }
          </script>
<body bgcolor="white" onload="asd();">
<a name="navbar_top"></a>
<table border="0" width="100%" cellpadding="1" cellspacing="0">
<tr>
<td COLSPAN="3" BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><a NAME="navbar_top_firstrow"></a>
<table BORDER="0" CELLPADDING="0" CELLSPACING="3">
<tr ALIGN="center" VALIGN="top">
<td BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    &nbsp;<a href="../overview-summary.html"><font CLASS="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td><td BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    &nbsp;<a href="tld-summary.html"><font CLASS="NavBarFont1"><b>Library</b></font></a>&nbsp;</td><td BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<font CLASS="NavBarFont1Rev">&nbsp;Tag&nbsp;</font>&nbsp;</td><td BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    &nbsp;<a HREF="../help-doc.html"><font CLASS="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
</tr>
</table>
</td><td ALIGN="right" VALIGN="top" ROWSPAN="3"><em></em></td>
</tr>
<tr>
<td BGCOLOR="white" CLASS="NavBarCell2"><font SIZE="-2"></font></td><td BGCOLOR="white" CLASS="NavBarCell2"><font SIZE="-2">
                &nbsp;<a HREF="../index.html" TARGET="_top"><b>FRAMES</b></a>&nbsp;
                &nbsp;<a href="selectManyCheckbox.html" target="_top"><b>NO FRAMES</b></a>&nbsp;
                <script></script>
<noscript>
<a HREF="../alltags-noframe.html" TARGET=""><b>All Tags</b></a>
</noscript>
</font></td>
</tr>
</table>
<hr>
<h2>
<font size="-1">tc</font>
<br>
            Tag selectManyCheckbox</h2>
<hr>Render a group of checkboxes.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UISelectManyCheckbox</p><p><b>RendererType: </b>SelectManyCheckbox</p><br>
<p></p>
<hr>
<table border="1" cellpadding="3" cellspacing="0" width="100%">
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan="2"><font size="+2"><b>Tag Information</b></font></td>
</tr>
<tr>
<td>Tag Class</td><td>org.apache.myfaces.tobago.internal.taglib.SelectManyCheckboxTag</td>
</tr>
<tr>
<td>TagExtraInfo Class</td><td><i>None</i></td>
</tr>
<tr>
<td>Body Content</td><td>JSP</td>
</tr>
<tr>
<td>Display Name</td><td><i>None</i></td>
</tr>
</table>
<br>
<p></p>
<table border="1" cellpadding="3" cellspacing="0" width="100%">
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan="5"><font size="+2"><b>Attributes</b></font></td>
</tr>
<tr>
<td><b>Name</b></td><td><b>Required</b></td><td><b>Request-time</b></td><td><b>Type</b></td><td><b>Description</b></td>
</tr>
<tr valign="top">
<td>binding</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>javax.faces.component.UIComponent</code>)
                    </td><td>The value binding expression linking this component to a property in a backing bean.
 <p/>
 Warning: For the tobago extension library <b>tx</b> the binding differs from JSP and Facelets:
 <ul>
 <li>JSP: The component is the inner main control (e. g. UIInput).</li>
 <li>Facelets: The component is the outer UIPanel.</li>
 </ul><br />Type: <code>javax.faces.component.UIComponent</code></td>
</tr>
<tr valign="top">
<td>converter</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>javax.faces.convert.Converter</code>)
                    </td><td>An expression that specifies the Converter for this component.
 If the value binding expression is a String,
 the String is used as an ID to look up a Converter.
 If the value binding expression is a Converter,
 uses that instance as the converter.
 The value can either be a static value (ID case only)
 or an EL expression.<br />Type: <code>javax.faces.convert.Converter</code></td>
</tr>
<tr valign="top">
<td>converterMessage</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.String</code>)
                    </td><td>An expression that specifies the converter message<br />Type: <code>java.lang.String</code></td>
</tr>
<tr valign="top">
<td>disabled</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.Boolean</code>)
                    </td><td>Flag indicating that this element is disabled.<br />Type: <code>boolean</code><br />Default: <code>false</code></td>
</tr>
<tr valign="top">
<td>focus</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.Boolean</code>)
                    </td><td>Flag indicating this component should receive the focus.<br />Type: <code>boolean</code><br />Default: <code>false</code></td>
</tr>
<tr valign="top">
<td>id</td><td>false</td><td>true</td><td><code>java.lang.String</code></td><td>The component identifier for this component.
 This value must be unique within the closest parent component that is a naming container.<br />Type: <code>java.lang.String</code></td>
</tr>
<tr valign="top">
<td>inline</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.Boolean</code>)
                    </td><td>Flag indicating this component should rendered as an inline element.<br />Type: <code>boolean</code><br />Default: <code>false</code></td>
</tr>
<tr valign="top">
<td>label</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.String</code>)
                    </td><td>A localized user presentable name for this component.<br />Type: <code>java.lang.String</code></td>
</tr>
<tr valign="top">
<td>markup</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>org.apache.myfaces.tobago.context.Markup</code>)
                    </td><td>Indicate markup of this component.
 The allowed markups can be defined or overridden in the theme.
 The value 'none' should not be used any longer. Just leave the attribute empty, or use a NULL pointer.<br />Type: <code>org.apache.myfaces.tobago.context.Markup</code></td>
</tr>
<tr valign="top">
<td>onchange</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.String</code>)
                    </td><td><p>**** @deprecated. Will be removed in a future version **** </p><p>Client side script function to add to this component's onchange handler.</p>Client side script function to add to this component's onchange handler.<br />Type: <code>java.lang.String</code></td>
</tr>
<tr valign="top">
<td>readonly</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.Boolean</code>)
                    </td><td>Flag indicating that this component will prohibit changes by the user.<br />Type: <code>boolean</code><br />Default: <code>false</code></td>
</tr>
<tr valign="top">
<td>renderRange</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.String</code>)
                    </td><td>Range of items to render.<br />Type: <code>java.lang.String</code></td>
</tr>
<tr valign="top">
<td>rendered</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.Boolean</code>)
                    </td><td>Flag indicating whether or not this component should be rendered
 (during Render Response Phase), or processed on any subsequent form submit.<br />Type: <code>boolean</code><br />Default: <code>true</code></td>
</tr>
<tr valign="top">
<td>required</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.Boolean</code>)
                    </td><td>Flag indicating that a value is required.
 If the value is an empty string a
 ValidationError occurs and a Error Message is rendered.<br />Type: <code>boolean</code><br />Default: <code>false</code></td>
</tr>
<tr valign="top">
<td>requiredMessage</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.String</code>)
                    </td><td>An expression that specifies the required message<br />Type: <code>java.lang.String</code></td>
</tr>
<tr valign="top">
<td>tabIndex</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.Integer</code>)
                    </td><td>Controls the navigation of the focus through the
 input controls on a page with the Tab-Key.
 The navigation starts from the element with
 the lowest tabIndex value to the element with the highest value.
 Elements that have identical tabIndex values should be navigated
 in the order they appear in the character stream
 Elements that are disabled or with a negative tabIndex
 do not participate in the tabbing order.<br />Type: <code>java.lang.Integer</code></td>
</tr>
<tr valign="top">
<td>tip</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.String</code>)
                    </td><td>Text value to display as tooltip.<br />Type: <code>java.lang.String</code></td>
</tr>
<tr valign="top">
<td>validator</td><td>false</td><td>false</td><td><code>javax.el.MethodExpression</code>
<br>(<i>signature must match </i><code>void validator(javax.faces.context.FacesContext, javax.faces.component.UIComponent, java.lang.Object)</code>)
                    </td><td>A method binding EL expression,
 accepting FacesContext, UIComponent,
 and Object parameters, and returning void, that validates
 the component's local value.</td>
</tr>
<tr valign="top">
<td>validatorMessage</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.String</code>)
                    </td><td>An expression that specifies the validator message<br />Type: <code>java.lang.String</code></td>
</tr>
<tr valign="top">
<td>value</td><td>false</td><td>false</td><td><code>javax.el.ValueExpression</code>
<br>(<i>must evaluate to </i><code>java.lang.Object</code>)
                    </td><td>The value of the multi select.<br />Type: <code>[java.lang.Object[], java.util.List]</code></td>
</tr>
<tr valign="top">
<td>valueChangeListener</td><td>false</td><td>false</td><td><code>javax.el.MethodExpression</code>
<br>(<i>signature must match </i><code>void valueChangeListener(javax.faces.event.ValueChangeEvent)</code>)
                    </td><td>MethodBinding representing a value change listener method
 that will be notified when a new value has been set for this input component.
 The expression must evaluate to a public method that takes a ValueChangeEvent
 parameter, with a return type of void.</td>
</tr>
</table>
<br>
<p></p>
<table border="1" cellpadding="3" cellspacing="0" width="100%">
<tr bgcolor="#CCCCFF" class="TableHeadingColor">
<td colspan="5"><font size="+2"><b>Variables</b></font></td>
</tr>
<td colspan="2"><i>No Variables Defined.</i></td>
</table>
<br>
<p></p>
<a name="navbar_bottom"></a>
<table border="0" width="100%" cellpadding="1" cellspacing="0">
<tr>
<td COLSPAN="3" BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><a NAME="navbar_bottom_firstrow"></a>
<table BORDER="0" CELLPADDING="0" CELLSPACING="3">
<tr ALIGN="center" VALIGN="top">
<td BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    &nbsp;<a href="../overview-summary.html"><font CLASS="NavBarFont1"><b>Overview</b></font></a>&nbsp;</td><td BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    &nbsp;<a href="tld-summary.html"><font CLASS="NavBarFont1"><b>Library</b></font></a>&nbsp;</td><td BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<font CLASS="NavBarFont1Rev">&nbsp;Tag&nbsp;</font>&nbsp;</td><td BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    &nbsp;<a HREF="../help-doc.html"><font CLASS="NavBarFont1"><b>Help</b></font></a>&nbsp;</td>
</tr>
</table>
</td><td ALIGN="right" VALIGN="top" ROWSPAN="3"><em></em></td>
</tr>
<tr>
<td BGCOLOR="white" CLASS="NavBarCell2"><font SIZE="-2"></font></td><td BGCOLOR="white" CLASS="NavBarCell2"><font SIZE="-2">
                &nbsp;<a HREF="../index.html" TARGET="_top"><b>FRAMES</b></a>&nbsp;
                &nbsp;<a href="selectManyCheckbox.html" target="_top"><b>NO FRAMES</b></a>&nbsp;
                <script></script>
<noscript>
<a HREF="../alltags-noframe.html" TARGET=""><b>All Tags</b></a>
</noscript>
</font></td>
</tr>
</table>
<hr>
<small><i>
            Output Generated by
            <a href="http://taglibrarydoc.dev.java.net/" target="_blank">Tag Library Documentation Generator</a>.
            Java, JSP, and JavaServer Pages are trademarks or
            registered trademarks of Sun Microsystems, Inc. in the US and other
            countries.  Copyright 2002-4 Sun Microsystems, Inc.
            4150 Network Circle
            Santa Clara, CA 95054, U.S.A.
            All Rights Reserved.
            </i></small>
</body>
</html>
