日期:2014-05-18  浏览次数:20628 次

Struts中ActionErrors与ActionMessage有什么区别啊?
请问,Struts中ActionErrors与ActionMessage有什么区别啊?都主要是负责什么功能的?

------解决方案--------------------
在Struts 1.2版本后,就舍弃ActionErrors了。统一使用ActoinMessage
------解决方案--------------------
ActionMessage实际是一个BEAN类,ActionMessages是一个HashMap,存放ActionMessage的。

ActionErrors,ActionError和上面两个区分是一样的,只不过ActionError是继承ActionMessage的,其中加入了自定义的处理,对外提供多态的构造函数。

saveErorrs的代码如下:
protected void saveErrors(HttpServletRequest request,
ActionErrors errors) {

// Remove any error messages attribute if none are required
if ((errors == null) || errors.isEmpty()) {
request.removeAttribute(Globals.ERROR_KEY);
return;
}

// Save the error messages we need
request.setAttribute(Globals.ERROR_KEY, errors);

}
可以看到实际上它就是把Error集合放到request中
==============================================
不过现在很少用ActionErrors,应该提示你duplicate了