现在的位置: 首页 > 综合 > 正文

org.apache.struts.action.ActionMessage cannot be cast to org.apache.struts.action.ActionError

2013年09月04日 ⁄ 综合 ⁄ 共 902字 ⁄ 字号 评论关闭
http://cache.baidu.com/c?word=action%3B%2E%3Bactionmessage%2Ccannot%2Cbe%2Ccast%2Cto%2Corg%3B%2E%3Bapache%3B%2E%3Bstruts%3B%2E%3Baction%3B%2E%3Bactionerror&url=http%3A//grp0606grp%2Espaces%2Elive%2Ecom/blog/cns%2134fd59307720974a%21121%2Eentry&p=c079c54ad2c35af406be9b7e07508a&user=baidu

org.apache.struts.action.ActionMessage cannot be cast to org.apache.struts.action.ActionError

你struts版本多少的。

一共有这么几个class

ActionMessage
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

 

抱歉!评论已关闭.