addErrors与saveErrors有什么区别

1.addErrors与saveErrors有什么区别?

在struts1.2以上版本中的Action才会有addErrors这个方法

addErrors和saveErrors的区别一个是添加到当前,一个会替换掉当前。

1.saveErrors :替换掉当前,如下:message2替换了message

a.Java代码:

public class LoginAction extends Action{    
   @Override  
public ActionForward execute(ActionMapping mapping, ActionForm form,  
        HttpServletRequest request, HttpServletResponse response)  
        throws Exception {  
      
       UserForm userForm = (UserForm)form;  

       ActionErrors errors = new ActionErrors(); //从struts1.2开始不推荐使用了
       
       ActionMessages messages = new ActionMessages();//从struts1.2开始,不管错误还是提示信息,推荐统一使用这个
       
       messages.add("error2", new ActionMessage("login.error.error2"));//ActionMessage从资源文件中获取数据
       
       //struts1.1中使用 不正常,在struts1.2中没问题
       messages.add("error3", new ActionMessage("数据采集失败...", false));
 
       ActionMessages messages2 = new ActionMessages();
       messages2.add("error3", new ActionMessage("数据采集失败2222...", false));
    
       
       this.saveMessages(request, messages);
       this.saveMessages(request, messages2);//message2将message替换了
       return mapping.findForward("error");  
   }  
}  

b.在src目录下存放资源文件ErrorDescription.properties, 内容如下:

login.error.error2=我是徐艳荣

 

c.JSP代码:

<html:messages id="message">
      <bean:write name="message"/>
   </html:messages>

d.测试结果:数据采集失败2222...

 

2.addErrors : 添加到当前,如下:就像message2 与message合并了,至于怎么实现的,可以看源码

a.java代码:

public class LoginAction extends Action{    
   @Override  
public ActionForward execute(ActionMapping mapping, ActionForm form,  
        HttpServletRequest request, HttpServletResponse response)  
        throws Exception {  
      
       UserForm userForm = (UserForm)form;  

       ActionErrors errors = new ActionErrors(); //从struts1.2开始不推荐使用了
       
       ActionMessages messages = new ActionMessages();//从struts1.2开始,不管错误还是提示信息,推荐统一使用这个
       
       messages.add("error2", new ActionMessage("login.error.error2"));//ActionMessage从资源文件中获取数据
       
       //struts1.1中使用 不正常,在struts1.2中没问题
       messages.add("error3", new ActionMessage("数据采集失败...", false));
 
       ActionMessages messages2 = new ActionMessages();
       messages2.add("error3", new ActionMessage("数据采集失败2222...", false));
    
       
       this.addMessages(request, messages);
       this.addMessages(request, messages2);//就像message2与message合并了
       return mapping.findForward("error");  
   }  
}  

b.在src目录下存放资源文件ErrorDescription.properties, 内容如下:

login.error.error2=我是徐艳荣

 

c.JSP代码:

<html:messages id="message">
      <bean:write name="message"/>
   </html:messages>

d.测试结果:我是徐艳荣  数据采集失败... 数据采集失败2222...

 

 

你可能感兴趣的:(error)