问题描述
我建了一个添加新生的表单,属性中有一个时间。我用的是My97DatePicker控件。我的ACTION是以下publicclassAddStudentActionextendsAction{privateManagerDAOmanagerDAO=null;publicAddStudentAction(){this.managerDAO=newManagerDAO();}publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{Stringaction=request.getParameter("action");if("managerAddStu".equals(action)){returnmanagerAddStu(mapping,form,request,response);}request.setAttribute("error","操作失败!");returnmapping.findForward("error");}privateActionForwardmanagerAddStu(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){System.out.print("wwwwwwww");AddStudentFormaddstudentform=(AddStudentForm)form;intret=managerDAO.manageAddStu(addstudentform);if(ret==0){request.setAttribute("AddStuFail","添加新考生信息失败!");returnmapping.findForward("AddStuFail");}else{request.setAttribute("AddStuSuccess","添加新考生成功!");returnmapping.findForward("AddStuSuccess");}}strus-web.xml是:<!--添加考生--><form-beanname="addstudentform"type="com.wgh.actionForm.AddStudentForm"/><actionname="addstudentform"path="/manage/manageraddstudent"scope="request"type="com.wgh.action.AddStudentAction"validate="true"><forwardname="error"path="/manage/error.jsp"/><forwardname="AddStuFail"path="/manage/addstuFail.jsp"/><forwardname="AddStuSuccess"path="/manage/addstuSuccess.jsp"/></action>AddStudentForm中是这样的:publicclassAddStudentFormextendsActionForm{privateStringsex;privateStringpwd;privateDatejoinTime;privateStringprofession;privateStringname;privateStringanswer;privateStringID;privateStringquestion;privateStringcardNo;publicStringgetSex(){returnsex;}publicvoidsetSex(Stringsex){this.sex=sex;}publicStringgetPwd(){returnpwd;}publicvoidsetPwd(Stringpwd){this.pwd=pwd;}publicDategetJoinTime(){returnjoinTime;}publicvoidsetJoinTime(DatejoinTime){this.joinTime=joinTime;}publicStringgetProfession(){returnprofession;}publicvoidsetProfession(Stringprofession){this.profession=profession;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetAnswer(){returnanswer;}publicvoidsetAnswer(Stringanswer){this.answer=answer;}publicStringgetID(){returnID;}publicvoidsetID(Stringid){ID=id;}publicStringgetQuestion(){returnquestion;}publicvoidsetQuestion(Stringquestion){this.question=question;}publicStringgetCardNo(){returncardNo;}publicvoidsetCardNo(StringcardNo){this.cardNo=cardNo;}}在表单点击“添加”按钮时出现:java.lang.IllegalArgumentException:Cannotinvokecom.wgh.actionForm.AddStudentForm.setJoinTime-argumenttypemismatch到底是哪里出问题了???????????????????
解决方案
解决方案二:
在ACTION中我用Addstudentform接受的表单提交的数据,用My97DatePicker控件,得到的不是日期型的数据吗?
解决方案三:
表单提交的都是字符串类型,只不过有些能自动转而已。简单点,FormBean中用String类型来接收日期数据(即setJoinTime用String作为参数,但是当场转换为Date存储,自己实现数据类型转换)
解决方案四:
好好检查下变量类型,应该是类型转换错误了。。