<Td class="r" width="20%"> 项目起始日期: </Td> <Td class="l" width="30%"> <input id="jsjXmxx.xmqsrq" name="jsjXmxx.xmqsrq" type="text" style="width: 60%;" οnclick="WdatePicker()" class="wdate" οnkeydοwn="return false;"/> </Td>
在做项目时,页面上经常使用各种日期控件进行日期输入,日期控件很方面,在限制用户非法输入的同时,还可以进行日期大小控制。
例如上面的代码中: 在提交的时候,自动将xmqsrq 的值赋给 **action中的jsjXmxx对象的setXmqsrq(Timestamp xmqsrq)方法,在jsjXmxx对象中,xmqsrq的类型是java.utl.Timestamp,而页面上是字符串,在这里,会进行一个类型转换问题,即将String转为Timestamp类型。
但是有时会遇到 如下 转型失败异常:
26 七月 2011 08:38:26 ERROR org.apache.struts2.dispatcher.Dispatcher - Could not find action or result No result defined for action cn.com.***.workfield.action.jxw.JxwSpxmxxAction and result input - action - file:/E:/eclipse-workspace/nt_credit/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/workfield/WEB-INF/classes/struts/jxw_support.xml:7:67 at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:345) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)这是经典的 form表单提交时 类型转换时出现异常。这个时候 你就要看看你的浏览器的语言了,我用的是IE6\7, 工具-Internet选项-语言,这时,看到的语言项,应该有个 英语[en]或者类似的在第一位或者在 中文(中国)[zh-cn]之前。 现在只需要将 英语[en]下移到 中文(中国)[zh-cn]之后,或者直接将英语[en] 删除即可。
下面再在浏览器中使用日期控件进行日期输入的测试。 OK