java.lang.ClassCastException
应该是类转换错误

解决方案 »

  1.   

    我不知道为什么会出现这个错误?
    下面是我的FORMBEAN
    /*
     * 创建日期 2005-6-16
     *
     * TODO 要更改此生成的文件的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    package com.dxinfo.formbeans;import javax.servlet.http.HttpServletRequest;
    import com.dxinfo.daos.SuperUserDao;import java.util.List;
    import org.apache.struts.action.*;
    /**
     * @author mm
     *
     * TODO 要更改此生成的类型注释的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    public class LoginForm extends ActionForm {

    private String userName;
    private String passWord;

    private List allUsers;

    private SuperUserDao supDao = new SuperUserDao();

    /**
     * @return 返回 passWord。
     */
    public String getPassWord() {
    return passWord;
    }
    /**
     * @param passWord 要设置的 passWord。
     */
    public void setPassWord(String passWord) {
    this.passWord = passWord;
    }
    /**
     * @return 返回 userName。
     */
    public String getUserName() {
    return userName;
    }
    /**
     * @param userName 要设置的 userName。
     */
    public void setUserName(String userName) {
    this.userName = userName;
    }
    public void reset(ActionMapping mapping,HttpServletRequest request)
        {
            userName = "";
            passWord = "";    }
        
        public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
        {
            ActionErrors errors = new ActionErrors();
            if(userName == null || userName.length() < 1)
            {
                errors.add("noName",new ActionMessage("app.noName"));
            }
            if(passWord == null || passWord.length() < 1)
            {
                errors.add("noPass", new ActionMessage("app.noPass"));
            }
            return errors;
        }}
      

  2.   

    你的struts-config.xml配置的是这个form吗?
      

  3.   

    解释标签时出现问题..不是你的文件的问题.重新配置一下struts
      

  4.   

    property="loginError"
    你这个errors在,action中存入request或者session中了么?
      

  5.   

    <html:errors property="loginError"/>
    你这个错误标签的处理在哪里?
    还有,你最好把action和config.xml文件贴出来。
    现在jsp与form是没有问题的。
    关于errors的处理还有一种方法就是在action中写:ActionErrors errors = new ActionErrors();
    ActionError error = new ActionError("trans.error.dirError");
    errors.add(ActionErrors.GLOBAL_ERROR, error);
    saveErrors(request, errors);
      

  6.   

    这是我的STRUTS-CONFIG.XML 文件
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
    <struts-config>
       <data-sources />
       <form-beans>
        <form-bean name="login" type="com.dxinfo.formbeans.LoginForm"/>
       </form-beans>
       <global-exceptions />
       <global-forwards />
       <action-mappings>
        <action path="/Login"
        type="com.dxinfo.actions.LoginAction"
        name="login"
        scope="request"
        validate="true"
        input="/pages/Hello.jsp">
        <forward name="success" path="/pages/AAA.html"/>
        </action>
       </action-mappings>
       <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
    </struts-config>下面是我的ACTION
    /*
     * 创建日期 2005-6-16
     *
     * TODO 要更改此生成的文件的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    package com.dxinfo.actions;import org.apache.struts.action.*;
    import javax.servlet.http.*;
    import com.dxinfo.formbeans.*;
    import com.dxinfo.daos.*;
    /**
     * @author mm
     *
     * TODO 要更改此生成的类型注释的模板,请转至
     * 窗口 - 首选项 - Java - 代码样式 - 代码模板
     */
    public class LoginAction extends Action{

    public ActionForward execute(ActionMapping mapping,ActionForm form,
    HttpServletRequest req,HttpServletResponse resp)
    throws Exception
    {
    String userName = ((LoginForm)form).getUserName().trim();
    String passWord = ((LoginForm)form).getPassWord().trim();

    SuperUserDao supDao = new SuperUserDao();
    if(supDao.logon(userName,passWord))
    {
    req.removeAttribute(mapping.getAttribute());
    return mapping.findForward("success");
    }
    else
    {
    ActionErrors errors = new ActionErrors();
    errors.add("loginError",new ActionMessage("app.loginError"));
    saveErrors(req,errors);
    return mapping.getInputForward();
    }

    }}
      

  7.   

    回复人: leonade(雨寒风) ( ) 信誉:100  2005-06-17 08:58:00  得分: 0  
     
     
       <html:errors property="loginError"/>
    你这个错误标签的处理在哪里?
    还有,你最好把action和config.xml文件贴出来。
    现在jsp与form是没有问题的。
    关于errors的处理还有一种方法就是在action中写:ActionErrors errors = new ActionErrors();
    ActionError error = new ActionError("trans.error.dirError");
    errors.add(ActionErrors.GLOBAL_ERROR, error);
    saveErrors(request, errors);  
     
    ---------------------------------------
    我觉得问题就是在这里,
    其实你如果只是有一个消息资源文件的话,你可以像上边这位人兄这样写,
    然后在页面中直接: <html:errors/>
    就可以输出出错信息了!·
      

  8.   

    ActionErrors errors = new ActionErrors();
    errors.add("loginError",new ActionMessage("app.loginError"));
    saveErrors(req,errors);
    return mapping.getInputForward();错误处理了,在ACTION 里面呀。。
      

  9.   

    我的问题,觉得不在ACTION 层,
    应该在JSP 的FORMBEAN 里面。
    因为,我提交一个空的表单,错误提示信息也没有出现。而是直接出错了
      

  10.   

    看看你的applicationresources.properties文件看看它的位置及引用有没有错
      

  11.   

    没有错误。
    因为,我在Hello。jsp的文件上,同时通过<bean:message key="app.title"/> 
    显示了一字符串。
      

  12.   

    终于找到错误了,
    我用的这个ECLIPSE 的版本问题,
    我发现。我的STRTUS.JAR 文件是482k,原来的是515K。
    是不是这个版本里带的STRUTS.JAR 文件有问题。
    我用的是STRTUS1.2 .
      

  13.   

    怎么样替换ECLIPSE 里自己带的STRUTS.JAR 文件???
      

  14.   

    Eclipse自带的struts.jar?你装的什么插件吧?easeStruts?
      

  15.   

    我用的是MYECLIPSE 383 企业版本。