AtionErrors和ActionMessages的区别

来源:互联网 发布:yum 安装snmp 编辑:程序博客网 时间:2024/05/16 08:13

尽管Struts框架提供了有效的异常处理机制,但不能保证处理所有的错误,这时Struts框架会把错误抛给Web容器,在默认情况下Web容器会向用户浏览器直接返回原始信息。如果想避免直接让用户看到这些原始信息,可以在web.xml中配置<error-page>元素,以下代码演示了如何避免用户看到HTTP 404、HTTP 500错误和Exception异常。 

<error-page>

   <error-code>404</error-code>

   <location>/exception/error404.jsp</location>

 </error-page>

 <error-page>

   <error-code>500</error-code>

   <location>/exception/error500.jsp</location>

 </error-page>

 <error-page>

   <exception-type>java.lang.Exception</exception-type>

   <location>/exception/default.jsp</location>

 </error-page>

ActionMessage功能是: 用来产生STRUTS消息的包括正常消息和错误消息。

 ActionMessage(key,object);其中key为在appication.properties中指的key值。object为消息中 要传入的参数,这里实现了动态传入。如果要传多个参数时,object处可以改为数组。

 AtionErrors和ActionMessages的区别 

1. ActionErrors是ActionMessages的一个子类,功能几乎相同,不同点在于标签<html:errors/>和<html:messages>的使用上的区别。 
html: errors指定了footer和header属性。默认值为errors.header和errors.footer,需要时可以自己指定。如果资源属性文件配置了 errors.header和errors.footer,则任何时候使用html:errors时开头和结尾都是这两个属性对应的资源信息。 
而html:message默认情况下没有errors.header和errors.footer值,当然可以自己指定。 

2. html:errors可以根据property属性指定显示一个错误信息。html:messages有一个必添项id。html:messages不能直接显示信息,它将选出的信息放入一个用id标识的Iterator对象里,然后在用ben:write或JSTL c:out标签显示每个信息。

Action包含saveErrors()方法和saveMessages()方法。如果创建的ActionErrors则应该调用saveErrors(),若创建的是ActionMessages则应该调用saveMessages()方法。 
saveErrors ()接收ActionMessages而不是ActionErrors;同时将其保存在request中并用一个由org.apache.struts.Globals.ERROR_KEY指定的常量”org.apache.struts.Globals.ERROR_KEY”标识这个ActionMessages,便于html:errors查找。 saveMessages()方法接收ActionMessages同时将其保存在request中并用一个由 org.apache.struts.Globals.MESSAGE_KEY指定的常量”org.apache.struts.Globals.MESSAGE_KEY”标识这个ActionMessages,进而让html: messages从常量Globals.ERROR_KEY中遍历获取信息。可以将其属性message设置为true,那么它将从常量 Globals.MESSAGE_KEY中遍历获取信息。
0 0
原创粉丝点击