<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>date
          (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="date (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="date.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 date</h2>
<hr>Renders a date input field.<p><b>UIComponentClass: </b>org.apache.myfaces.tobago.component.UIDate</p><p><b>RendererType: </b>Date</p><p><b>Supported facets:</b></p><dl><dt><b>change</b></dt><dd>This facet can contain a UICommand that is invoked in a case of a change event from the component</dd></dl><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.DateTag</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>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>Text value to display as label.
 If text contains an underscore the next character is used as accesskey (if configured so and possible).<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>placeholder</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>Displays a short text in the input field, that describes the meaning of this field.
 This is part of HTML 5, the theme should emulate the behaviour, when the browser doesn't support it.
 <p/>
 The text will not be displayed, when the input field is readonly or disabled.<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>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 current value of this component.<br />Type: <code>java.lang.Object</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="date.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>
