NOTE: Ajax template (Dojo plugin) is deprecated and won't be supported any longer.
Description
{% comment %}start snippet id=javadoc|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java {% endcomment %}
Syntax supported by ‘displayFormat’ is (http://www.unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns):-
Parameters
{% comment %}start snippet id=tagattributes|javadoc=false|url=struts2-tags/ajax/datetimepicker.html {% endcomment %}
<tr> <td colspan="6"><h4>Dynamic Attributes Allowed:</h4> false</td> </tr> <tr> <td colspan="6"> </td> </tr> <tr> <th align="left" valign="top"><h4>Name</h4></th> <th align="left" valign="top"><h4>Required</h4></th> <th align="left" valign="top"><h4>Default</h4></th> <th align="left" valign="top"><h4>Evaluated</h4></th> <th align="left" valign="top"><h4>Type</h4></th> <th align="left" valign="top"><h4>Description</h4></th> </tr> <tr> <td align="left" valign="top">accesskey</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html accesskey attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">adjustWeeks</td> <td align="left" valign="top">false</td> <td align="left" valign="top">false</td> <td align="left" valign="top">false</td> <td align="left" valign="top">Boolean</td> <td align="left" valign="top">If true, weekly size of calendar changes to acomodate the month if false, 42 day format is used</td> </tr> <tr> <td align="left" valign="top">cssClass</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">The css class to use for element</td> </tr> <tr> <td align="left" valign="top">cssErrorClass</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">The css error class to use for element</td> </tr> <tr> <td align="left" valign="top">cssErrorStyle</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">The css error style definitions for element to use</td> </tr> <tr> <td align="left" valign="top">cssStyle</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">The css style definitions for element to use</td> </tr> <tr> <td align="left" valign="top">dayWidth</td> <td align="left" valign="top">false</td> <td align="left" valign="top">narrow</td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">How to render the names of the days in the header(narrow, abbr or wide)</td> </tr> <tr> <td align="left" valign="top">disabled</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html disabled attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">displayFormat</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">A pattern used for the visual display of the formatted date, e.g. dd/MM/yyyy</td> </tr> <tr> <td align="left" valign="top">displayWeeks</td> <td align="left" valign="top">false</td> <td align="left" valign="top">6</td> <td align="left" valign="top">false</td> <td align="left" valign="top">Integer</td> <td align="left" valign="top">Total weeks to display</td> </tr> <tr> <td align="left" valign="top">endDate</td> <td align="left" valign="top">false</td> <td align="left" valign="top">2941-10-12</td> <td align="left" valign="top">false</td> <td align="left" valign="top">Date</td> <td align="left" valign="top">Last available date in the calendar set</td> </tr> <tr> <td align="left" valign="top">errorPosition</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Define error position of form element (top|bottom)</td> </tr> <tr> <td align="left" valign="top">formatLength</td> <td align="left" valign="top">false</td> <td align="left" valign="top">short</td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Type of formatting used for visual display. Possible values are long, short, medium or full</td> </tr> <tr> <td align="left" valign="top">iconPath</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Path to icon used for the dropdown</td> </tr> <tr> <td align="left" valign="top">id</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">HTML id attribute</td> </tr> <tr> <td align="left" valign="top">javascriptTooltip</td> <td align="left" valign="top">false</td> <td align="left" valign="top">false</td> <td align="left" valign="top">false</td> <td align="left" valign="top">Boolean</td> <td align="left" valign="top">Use JavaScript to generate tooltips</td> </tr> <tr> <td align="left" valign="top">key</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the key (name, value, label) for this particular component</td> </tr> <tr> <td align="left" valign="top">label</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Label expression used for rendering an element specific label</td> </tr> <tr> <td align="left" valign="top">labelSeparator</td> <td align="left" valign="top">false</td> <td align="left" valign="top">:</td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">String that will be appended to the label</td> </tr> <tr> <td align="left" valign="top">labelposition</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Define label position of form element (top/left)</td> </tr> <tr> <td align="left" valign="top">language</td> <td align="left" valign="top">false</td> <td align="left" valign="top">brower's specified preferred language</td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Language to display this widget in</td> </tr> <tr> <td align="left" valign="top">name</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">The name to set for element</td> </tr> <tr> <td align="left" valign="top">onblur</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top"> Set the html onblur attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onchange</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onchange attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onclick</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onclick attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">ondblclick</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onfocus</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onfocus attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onkeydown</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onkeypress</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onkeyup</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onmousedown</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onmousemove</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onmouseout</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onmouseover</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onmouseup</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">onselect</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html onselect attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">requiredLabel</td> <td align="left" valign="top">false</td> <td align="left" valign="top">false</td> <td align="left" valign="top">false</td> <td align="left" valign="top">Boolean</td> <td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td> </tr> <tr> <td align="left" valign="top">requiredPosition</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Define required position of required form element (left|right)</td> </tr> <tr> <td align="left" valign="top">startDate</td> <td align="left" valign="top">false</td> <td align="left" valign="top">1492-10-12</td> <td align="left" valign="top">false</td> <td align="left" valign="top">Date</td> <td align="left" valign="top">First available date in the calendar set</td> </tr> <tr> <td align="left" valign="top">staticDisplay</td> <td align="left" valign="top">false</td> <td align="left" valign="top">false</td> <td align="left" valign="top">false</td> <td align="left" valign="top">Boolean</td> <td align="left" valign="top">Disable all incremental controls, must pick a date in the current display</td> </tr> <tr> <td align="left" valign="top">style</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">The css style definitions for element to use - it's an alias of cssStyle attribute.</td> </tr> <tr> <td align="left" valign="top">tabindex</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html tabindex attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">template</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">The template (other than default) to use for rendering the element</td> </tr> <tr> <td align="left" valign="top">templateCssPath</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Template css path</td> </tr> <tr> <td align="left" valign="top">templateDir</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">The template directory.</td> </tr> <tr> <td align="left" valign="top">title</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the html title attribute on rendered html element</td> </tr> <tr> <td align="left" valign="top">toggleDuration</td> <td align="left" valign="top">false</td> <td align="left" valign="top">100</td> <td align="left" valign="top">false</td> <td align="left" valign="top">Integer</td> <td align="left" valign="top">Duration of toggle in milliseconds</td> </tr> <tr> <td align="left" valign="top">toggleType</td> <td align="left" valign="top">false</td> <td align="left" valign="top">plain</td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">oggle type of the dropdown. Possible values are plain,wipe,explode,fade</td> </tr> <tr> <td align="left" valign="top">tooltip</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Set the tooltip of this particular component</td> </tr> <tr> <td align="left" valign="top">tooltipConfig</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Deprecated. Use individual tooltip configuration attributes instead.</td> </tr> <tr> <td align="left" valign="top">tooltipCssClass</td> <td align="left" valign="top">false</td> <td align="left" valign="top">StrutsTTClassic</td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">CSS class applied to JavaScrip tooltips</td> </tr> <tr> <td align="left" valign="top">tooltipDelay</td> <td align="left" valign="top">false</td> <td align="left" valign="top">Classic</td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Delay in milliseconds, before showing JavaScript tooltips </td> </tr> <tr> <td align="left" valign="top">tooltipIconPath</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Icon path used for image that will have the tooltip</td> </tr> <tr> <td align="left" valign="top">type</td> <td align="left" valign="top">false</td> <td align="left" valign="top">date</td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Defines the type of the picker on the dropdown. Possible values are 'date' for a DateTimePicker, and 'time' for a timePicker</td> </tr> <tr> <td align="left" valign="top">value</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Preset the value of input element</td> </tr> <tr> <td align="left" valign="top">valueNotifyTopics</td> <td align="left" valign="top">false</td> <td align="left" valign="top"></td> <td align="left" valign="top">false</td> <td align="left" valign="top">String</td> <td align="left" valign="top">Comma delimmited list of topics that will published when a value is selected</td> </tr> <tr> <td align="left" valign="top">weekStartsOn</td> <td align="left" valign="top">false</td> <td align="left" valign="top">0</td> <td align="left" valign="top">false</td> <td align="left" valign="top">Integer</td> <td align="left" valign="top">Adjusts the first day of the week 0==Sunday..6==Saturday</td> </tr> </table>
Examples
{% comment %}start snippet id=example1|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java {% endcomment %}
<sx:datetimepicker name="order.date" label="Order Date" /> <sx:datetimepicker name="delivery.date" label="Delivery Date" displayFormat="yyyy-MM-dd" /> <sx:datetimepicker name="delivery.date" label="Delivery Date" value="%{date}" /> <sx:datetimepicker name="delivery.date" label="Delivery Date" value="%{'2007-01-01'}" /> <sx:datetimepicker name="order.date" label="Order Date" value="%{'today'}"/>
{% comment %}end snippet id=example1|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java {% endcomment %}
Getting and getting the datetimepicker value, from JavaScript:
{% comment %}start snippet id=example2|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java {% endcomment %}
<sx:datetimepicker id="picker" label="Order Date" /> <script type="text/javascript"> function setValue() { var picker = dojo.widget.byId("picker"); //string value picker.setValue('2007-01-01'); //Date value picker.setValue(new Date()); } function showValue() { var picker = dojo.widget.byId("picker"); //string value var stringValue = picker.getValue(); alert(stringValue); //date value var dateValue = picker.getDate(); alert(dateValue); } </script>
{% comment %}end snippet id=example2|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java {% endcomment %}
Publish topic when value changes
{% comment %}start snippet id=example3|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java {% endcomment %}
<sx:datetimepicker id="picker" label="Order Date" valueNotifyTopics="/value"/> <script type="text/javascript"> dojo.event.topic.subscribe("/value", function(textEntered, date, widget){ alert('value changed'); //textEntered: String enetered in the textbox //date: JavaScript Date object with the value selected //widet: widget that published the topic }); </script>
{% comment %}end snippet id=example3|lang=xml|javadoc=true|url=struts2/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java {% endcomment %}