我建了一个添加新生的表单,属性中有一个时间。我用的是My97DatePicker控件。
我的ACTION是以下
public class AddStudentAction extends Action {
private ManagerDAO managerDAO = null; public AddStudentAction() {
this.managerDAO = new ManagerDAO();
} public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String action = request.getParameter("action");
if ("managerAddStu".equals(action)) {
return managerAddStu(mapping, form, request, response);
}
request.setAttribute("error", "操作失败!");
return mapping.findForward("error");
}
private ActionForward managerAddStu(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) 
{
System.out.print("wwwwwwww");
AddStudentForm  addstudentform=(AddStudentForm)form;
int ret= managerDAO.manageAddStu(addstudentform);

if (ret==0) {
request.setAttribute("AddStuFail", "添加新考生信息失败!");
return mapping.findForward("AddStuFail");
} else {
request.setAttribute("AddStuSuccess", "添加新考生成功!");
return mapping.findForward("AddStuSuccess");
}
}
strus-web.xml是:
<!-- 添加考生 -->
 <form-bean name="addstudentform" type="com.wgh.actionForm.AddStudentForm" />   
  <action name="addstudentform" path="/manage/manageraddstudent" scope="request"                         type="com.wgh.action.AddStudentAction" validate="true">
        <forward name="error" path="/manage/error.jsp" />
            <forward name="AddStuFail" path="/manage/addstuFail.jsp"/>
            <forward name="AddStuSuccess" path="/manage/addstuSuccess.jsp"/>
    </action>
AddStudentForm中是这样的:
   public class AddStudentForm extends ActionForm {
private String sex;
private String pwd;
private Date joinTime;
private String profession;
private String name;
private String answer;
private String ID;
private String question;
private String cardNo;
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public Date getJoinTime() {
return joinTime;
}
public void setJoinTime(Date joinTime) {
this.joinTime = joinTime;
}
public String getProfession() {
return profession;
}
public void setProfession(String profession) {
this.profession = profession;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
public String getID() {
return ID;
}
public void setID(String id) {
ID = id;
}
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String getCardNo() {
return cardNo;
}
public void setCardNo(String cardNo) {
this.cardNo = cardNo;
}
}
在表单点击“添加”按钮时出现:
java.lang.IllegalArgumentException: Cannot invoke com.wgh.actionForm.AddStudentForm.setJoinTime - argument type mismatch
  到底是哪里出问题了???????????????????

解决方案 »

  1.   

    在ACTION中我用Addstudentform接受的表单提交的数据,用My97DatePicker控件,得到的不是日期型的数据吗?
      

  2.   

    表单提交的都是字符串类型,只不过有些能自动转而已。
    简单点,FormBean中用String类型来接收日期数据(即setJoinTime用String作为参数,但是当场转换为Date存储,自己实现数据类型转换)