有啊
# Resources for parameter 'com.yourcompany.struts.ApplicationResources'
# Project HelloStrutsjsp.hello.title=Hello world ~~Nada!!
jsp.hello.error=This is error@@@

解决方案 »

  1.   


    你struts版本多少的。一共有这么几个classActionMessage
    ActionMessages
    ActionError
    ActionErrors其中
    1 单数的是单条信息,复数的是信息的容器
    2 Error错误,Message其他
    3 Error(s)继承自Message(s)这个是以前版本的,但是新版Error(s)被deprecated了,唯独validate方法的返回类型为了保持兼容而流了下来。但是新版的使用ActionErrors.add(ActionMessage),而旧版的使用的是ActionErrors.add(ActionError)所以我估计你看的例子是1.2的,而运行的版本是1.1的,导致validate验证有错误信息,跳转回<action input>指定的jsp后,遇到<html:errors>,1.1的仍然认为ActionErrors里面的都是ActionError,而cast,结果造成了java.lang.ClassCastException: org.apache.struts.action.ActionMessage cannot be cast to org.apache.struts.action.ActionError
      

  2.   

    ActionErrors errors=new ActionErrors();
    rrors.add("userName",new ActionMessage("jsp.hello.error"));
    -----------
    你是看孙卫琴的那本书吧,今天为了试试Eclipse的WTP插件也做了这个例子,
    那是个bug,errors.add(arg0, arg1),arg1要求是ActionError,你改成ActionError就好了.顺便多说一句,那个例子不止这一个错误. 
      

  3.   

    楼上的,是你们自己用的struts版本低了,不是人家错了。
      

  4.   

    errors.add(arg0, arg1),arg1要求是ActionError,你改成ActionError就好了.arg1是ActionError的话是不能通过编译的 要是ActionMessage。孙的这个例子没错可以通过编译的。自己照着书作的没有问题的。我选择的是struts1.2
      

  5.   

    OK了  ~TKS  好象还要ctrl+shift+o导入ActionError~~
      

  6.   

    ActionErrors errors=new ActionErrors();
    ==>
    ActionMessages errors=new ActionMessages();