JavaScud | Forum | JIRA | Blog |
  Dashboard > WebWork2文档中文化计划 > ... > Form Tags > datepicker
  WebWork2文档中文化计划 Log In View a printable version of the current page.  
  datepicker
Added by scud, last edited by Jeff Wang on May 23, 2006  (view change)
Labels: 
(None)

请确认你已经读过了 Tag Syntax 文档 并且理解标签的属性语法是如何工作的.

描述

绘制日期选取器控件.

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()中,只处理了四种日期格式,其中不包括只显示到分钟的格式。如果不符合这四种指定的日期格式,则默认截去时间部分,只留日期部分。

Posted by Anonymous at Jun 14, 2007 10:33; last updated at Aug 10, 2007 19:35 by scud | Reply To This
Site running on a free Atlassian Confluence Open Source Project License granted to WebWork China. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.3 Build:#808 May 29, 2007) - Bug/feature request - Contact Administrators