1

我想从数据库中的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)

搜索FB.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");
}
}

表单数据.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...
4

1 回答 1

0

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

DynaValidatorForm sfb = (DynaValidatorForm) form;

它将解决您的类转换异常,但是您作为参数传递给其他层的实例未初始化,因此该操作本身是可疑的。

于 2014-02-23T12:28:44.463 回答