描述
绘制日期选取器控件.
WebWork 2.2版本的实现使用jscalendar替换了不支持本地化的tigracalendar. 如果在应用中使用了旧版本的控件, 请检查地区和日期格式设置. 如果不想让日历看起来是透明的, 确保在页面中包含了下面列出的正确的样式表(stylesheet).
重要: 如果不在<ww:form />标签中使用时, 一定要设置id属性, 将选中的日期值复制到文本框元素时需要使用该属性.
下面是format参数的参考(从jscalendar的文档中复制):
| %a |
简写的星期名称 (三个英文, 或一个中文) |
| %A |
完整的星期名称 |
| %b |
简写的月份名称 (三位的字母或中文数字) |
| %B |
完整的月份名称 |
| %C |
显示世纪 |
| %d |
两位数的日期( 00 .. 31 ) |
| %e |
日期 ( 0 .. 31 ) |
| %H |
小时 ( 00 .. 23 ) |
| %I |
小时 ( 01 .. 12 ) |
| %j |
在一年中的天数序号( 000 .. 366 ) |
| %k |
小时 ( 0 .. 23 ) |
| %l |
小时 ( 1 .. 12 ) |
| %m |
数字月份 ( 01 .. 12 ) |
| %M |
分钟数 ( 00 .. 59 ) |
| %n |
换行符 |
| %p |
``PM''或``AM'' |
| %P |
``pm''或``am'' |
| %S |
秒( 00 .. 59 ) |
| %s |
从计时点开始的描述 (从1970年1月1日零点开始) |
| %t |
制表符 ('\t') |
| %U, %W, %V |
在一年中的星期序号 (如: 第一周) |
| %u |
在星期中的序号 ( 1 .. 7, 1 = MON ) |
| %w |
在星期中的序号 ( 0 .. 6, 0 = SUN ) |
| %y |
不包含世纪的年份 ( 00 .. 99 ) |
| %Y |
包含世纪的年份 ( ex. 1979 ) |
| %% |
一个百分号('%') |
(摘自snippet:id=javadoc|javadoc=true|url=com.opensymphony.webwork.components.DatePicker)
属性
| 名称 |
必填 |
缺省值 |
类型 |
描述 |
| language |
false |
当前地区使用的语言 |
String |
控件文本使用的语言和本地化设置. |
| format |
false |
由语言指定的预设的日期格式(英语("en")使用%Y/%m/%d) |
String |
日期字段的格式. |
| showstime |
false |
false |
String |
是否显示时间选取器. 有效值包括"true", "false", "24"和"12". |
| singleclick |
false |
true |
Boolean |
决定使用单击选中还是双击选中. |
| maxlength |
false |
|
Integer |
HTML maxlength属性 |
| maxLength |
false |
|
Object/String |
不建议使用. 建议使用maxlength属性替代. |
| readonly |
false |
false |
Boolean |
设置为只读,不允许输入 |
| size |
false |
|
Integer |
HTML size 属性 |
| theme |
false |
|
Object/String |
输出元素时使用的主题(theme)(不使用缺省的) |
| template |
false |
|
Object/String |
输出元素时使用的模板(template)(不使用缺省的) |
| cssClass |
false |
|
Object/String |
输出元素时的class属性 |
| cssStyle |
false |
|
Object/String |
输出元素时的css样式定义(译者注:就是html元素的style属性) |
| title |
false |
|
Object/String |
在输出元素时设置html属性title |
| disabled |
false |
|
Object/String |
在输出元素时设置html属性disabled |
| label |
false |
|
Object/String |
用于输出一个元素对应的label的表达式 |
| labelPosition |
false |
left |
Object/String |
不赞成使用. |
| labelposition |
false |
|
Object/String |
定义元素标签的位置(top/left) |
| requiredposition |
false |
|
Object/String |
定义required属性输出的位置(left|right) |
| name |
false |
|
Object/String |
元素的名字 |
| required |
false |
false |
Boolean |
如果设置为true, 在输出标签时将显示出此字段是必须输入的(译者注:如果使用默认模板,将会标示为"*") |
| tabindex |
false |
|
Object/String |
在输出元素时设置html属性tabindex |
| value |
false |
|
Object/String |
预设input元素的value属性. |
| onclick |
false |
|
Object/String |
在输出元素时设置html属性onclick |
| ondblclick |
false |
|
Object/String |
在输出元素时设置html属性ondblclick |
| onmousedown |
false |
|
Object/String |
在输出元素时设置html属性onmousedown |
| onmouseup |
false |
|
Object/String |
在输出元素时设置html属性onmouseup |
| onmouseover |
false |
|
Object/String |
在输出元素时设置html属性onmouseover |
| onmousemove |
false |
|
Object/String |
在输出元素时设置html属性onmousemove |
| onmouseout |
false |
|
Object/String |
在输出元素时设置html属性onmouseout |
| onfocus |
false |
|
Object/String |
在输出元素时设置html属性onfocus |
| onblur |
false |
|
Object/String |
在输出元素时设置html属性onblur |
| onkeypress |
false |
|
Object/String |
在输出元素时设置html属性onkeypress |
| onkeydown |
false |
|
Object/String |
在输出元素时设置html属性onkeydown |
| onkeyup |
false |
|
Object/String |
在输出元素时设置html属性onkeyup |
| onselect |
false |
|
Object/String |
在输出元素时设置html属性onselect |
| onchange |
false |
|
Object/String |
在输出元素时设置html属性onchange |
| tooltip |
false |
|
String |
设置元素的tooltip属性(译者注:tooltip为工具栏提示) |
| tooltipConfig |
false |
|
String |
设置tooltip属性的配置 |
| id |
false |
|
Object/String |
id是定位元素时使用的. 对于UI和表单标签它会被用作HTML的id属性 |
例子
Content pulled from external source. Click here to refresh. |
Date in application's locale format:
<ww:datepicker name="order.date" id="order.date" />
Date in german locale, with german texts:
<ww:datepicker name="delivery.date" id="delivery.date" template="datepicker_js.ftl" language="de" />
Date in german locale, with german texts and custom date format, including time:
<ww:datepicker name="invoice.date" id="invoice.date" template="datepicker_js.ftl" language="de" format="%d. %b &Y %H:%M" showstime="true" />
|
要使用这个基于jscalendar的日期选取器控件, 需要使用jscalendar提供的标准样式表(全部发行的样式表都包含在webwork的jar文件中). 最简单的做法是在HTML页面的加入<ww:head/>标签, 该标签会包含jscalendar的css文件. 否则, 要手工激活calendar-blue风格, 需要在css引用中包含下列内容:
Content pulled from external source. Click here to refresh. |
<link href="<ww:url value="/webwork/jscalendar/calendar-blue.css" />" rel="stylesheet" type="text/css" media="all"/>
|
补充一个示例,供参考:
ww:datepicker控件在根据变量内容显示日期时,默认只显示日期部分,不包括时间部分。如果有显示时间的要求,可如下设置:
<ww:date name="post.date" format="yyyy-MM-dd HH:mm:ss" id="postTime" />
<ww:datepicker name="post.date" value="%{#postTime}" label="记账时间" format="%Y-%m-%d %H:%M:%S" showstime="true" />
这样变量post.date既可以得到在页面选择的正确时间信息,同时在页面上又能以正确格式展现时间信息。
注意:如果ww:datepicker的format="%Y-%m-%d %H:%M",即只显示到分钟,则webwork会将变量post.date的值截去时间部分,只留日期部分。这是因为变量post.date是java.util.Date类型,而在com.opensymphony.xwork.util.XWorkBasicConverter的doConvertToDate()中,只处理了四种日期格式,其中不包括只显示到分钟的格式。如果不符合这四种指定的日期格式,则默认截去时间部分,只留日期部分。