Stuts2中的datetimepicker是一个用来获得选择的日期或时间的输入框,可以为我们在需要在页面中提交日期或时间的相关数据的时候增加了诸多的便利。
在Struts2.0中,只需要在页面的<Head>标签中添加<s:head theme="ajax"/>即可
在Struts2.1中,引用方式则发生了变化,此标签改调用dojo中的datetimepicker的库,因此,我们需要
1、在工程中加入struts2-dojo-plugin-2.1.X.jar
2、在页面头部加上标签库的引用
?
3、在页面的<Head>标签中加入<s:head/>(注意:此条就是有可能引起你的页面无法显示控件的原因)
?
准备工作完成之后,你就可以在你的页面中使用控件了。
举例如下:?
<sx:datetimepicker label="日期" name="date" displayFormat="yy-MM-dd" type="date"/> <sx:datetimepicker label="时间" name="time" displayFormat="hh:mm:ss" type="time"/> <!--lable为输入框的标签,也就是显示在输入框前边的字--> <!--name对应action中的变量,可以为String或Date--> <!--displayFormat输入框里日期的显示格式--> <!--type显示的类型,有两个date和time,分别对应日期和时间-->
?
?
?
?
如果你在使用控件的过程中出现了乱码,那么有如下几种解决方案:
1、向<sx:head />追加 extraLocales="en_us"属性 即<sx:head extraLocales="en_us" />
向<sx:datetimepicker />追加 language="en_us" 属性 即<sx:datetimepicker language="en_us"/>
或者将en_us改为utf-8也可以,此时不再用中文字符出现,只会显示相应的数字。
这种更改方式算是权宜之计,虽然快,但是没有相应的中文字符提示在用户看来终究体验不好
2、打开 struts2-dojo-plugin-2.1.x.jar 文件。
在org.apache.struts2.dojo.static.dojo.nls 目录下,对应文件是:dojo_zh.js , dojo_zh-cn.js , dojo_zh-tw.js.
这些文件的编码格式是utf-8,我们可以用编辑器以 utf-8 格式打开, 把其中的那些 ? 乱码字符改写成对应的中文字符,? "午", "九", "十", "前", "小", "钟" 等字是乱码。修改完对应的js文件,然后替换原来了js 即可。
附件是一个修改好的jar包,方便大家使用
?
如果你的控件在type=date的时候能够显示而在更改为type=time的时候不能显示的话,还有一种可能情况就是浏览器本身的问题。用最基本的IE浏览器打开看一下是否正常,不要跟浏览器较劲,说不定就是因为这个的原因浪费了不少的时间
?
?
?
<%@ taglib prefix="s" uri="/struts-tags"%> <%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
?