form :<form-bean name="studentForm" type="org.apache.struts.validator.DynaValidatorActionForm">
<form-property name="studentID" type="java.lang.Integer" />
action:
public ActionForward insert(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaValidatorActionForm studentForm = (DynaValidatorActionForm) form;
Student student = new Student();
student.setStudentID((Integer)studentForm.get("studentID"));
DAOImpl:
public void insert(Student student) throws Exception {
super.getHibernateTemplate().save(student);
}
验证:
<field property="studentID" depends="required,integer">
<arg key="err.studentID" resource="true" />
</field>
报错:
exception javax.servlet.ServletException: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
sunshine.toni.filter.EncodingFilter.doFilter(EncodingFilter.java:23)
root cause java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
org.apache.struts.action.DynaActionForm.getString(DynaActionForm.java:306)
sunshine.toni.struts.action.StudentAction.insert(StudentAction.java:90)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
sunshine.toni.filter.EncodingFilter.doFilter(EncodingFilter.java:23)在线等,,急谁帮忙看下???

解决方案 »

  1.   

    student.setStudentID((Integer)studentForm.get("studentID")); 
    这里转换出了问题吧...,你再查查.
      

  2.   

    我也知道是转换问题,可是我另外一个表单也是这样写的,却可以。。我曾经把form中的studentID属性改成string的,可以拉,,可是确不能验证整数了
      

  3.   

    你form中类型是 int ,这里似乎不用转吧(Integer)studentForm.get("studentID"); 
      

  4.   

    错误我自己找到了,上面的都没有错误,是另外一个地方错了。。studentForm.get("studentID");转出来的是object ,所以要在强制转换Integer类型。。
      

  5.   

    java.lang.Integer cannot be cast to java.lang.String 
    用int s=Integer.parseInt(String)
      

  6.   

    错误提示很清楚.转型出错..
    java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String 
    Form配置成java.lang.String
    student.setStudentID(Integer.parseInt(studentForm.get("studentID")));