【问题标题】:java.lang.ClassCastException: org.apache.struts.validator.DynaValidatorForm cannot be castjava.lang.ClassCastException: org.apache.struts.validator.DynaValidatorForm 不能被强制转换
【发布时间】:2014-02-23 08:04:16
【问题描述】:

我想从数据库中的jsp表单中搜索数据并显示在另一个jsp文件中...

javax.servlet.ServletException: java.lang.ClassCastException: org.apache.struts.validator.DynaValidatorForm cannot be cast to org.mat.search.SearchFB
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

SearchFB.java

import org.apache.struts.validator.DynaValidatorForm;

public class SearchFB extends DynaValidatorForm {

private String userName;
private String caste[];
private String qualification[];
private Integer age;
public String getUserName() {
    return userName;
}
public void setUserName(String userName) {
    this.userName = userName;
}
    .
    .

SearchAction.java

public ActionForward execute(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) {

    SearchFB sfb = (SearchFB) form;
    Formdata fd = new Formdata();
    fd.setUserName((String) sfb.get("userName"));
    fd.setAge((Integer) sfb.get("age"));
    fd.setQualification((String)sfb.get("qualification"));
    fd.setCaste((String) sfb.get("caste"));

    SearchDTO sdto = new SearchDTO();
    SearchJB sjb = new SearchJB();
    sjb.searchProduct(sdto);
    return mapping.findForward("ssuccess");
}
}

Formdata.java

public Formdata extends ActionForm{        
private String userName;
private String qualification;
private Integer age;
private String caste;


public String getUserName() {
    return userName;
}
public void setUserName(String userName) {
    this.userName = userName;
}
    setters and getters...

【问题讨论】:

    标签: java database jsp struts actionform


    【解决方案1】:

    如果您使用DynaValidatorForm,那么它应该被转换为Struts 提供的动作表单。例如

    DynaValidatorForm sfb = (DynaValidatorForm) form;
    

    它会解决你的类转换异常,但是你作为参数传递给其他层的实例没有初始化,所以这个动作本身是可疑的。

    【讨论】:

      猜你喜欢
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多