struts2异常处理

struts2异常处理,global-results定义全局结果处理

<global-results>定义全局结果处理

一般发生异常之后 结果返回errHandler
因为errHandler是由<global-exception-mappings>关联到Exception这个类了然后处理结果
 <result name="errHandler" type="chain">
然后它就根据
<param name="actionName">errorProcessor</param>
找action
<action name="errorProcessor" class="cn.itcast.sh.error.ErrorProcess">
             <result>/error.jsp</result>
  </action>处理了 然后 返回到 error.jsp

在struts.xml中

 1 <?xml version="1.0" encoding="utf-8"?>
 2  <!DOCTYPE struts PUBLIC
 3  "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4 "http://struts.apache.org/dtds/struts-2.3.dtd">
 5 <struts>
 6 <constant name="struts.devMode" value="true" />
 7  <constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
 8  <!-- <constant name="struts.custom.i18n.resources" value="itcast"></constant> -->
 9 <package name="struts-global" namespace="/" extends="struts-default">
10 <global-results>
11 <result name="errHandler" type="chain">
12  <param name="actionName">errorProcessor</param>
13  </result>
14 </global-results>
15  <global-exception-mappings>
16  <exception-mapping result="errHandler" exception="java.lang.Exception">
17   </exception-mapping>
18  </global-exception-mappings>
19
20 <action name="errorProcessor" class="cn.itcast.sh.error.ErrorProcess">
21  <result>/error.jsp</result>
22   </action>
23 </package>

然后其他包都继承它 就默认使用了其中定义的 错误处理

然后实现 类

class="cn.itcast.sh.error.ErrorProcess"
package cn.itcast.sh.error;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class ErrorProcess extends ActionSupport {
 private Exception exception;

public Exception getException() {
       return exception;
 }

     public void setException(Exception exception) {
        this.exception = exception;
     }
    @Override
     public String execute()
    {
        ActionContext.getContext().getValueStack().push(this.exception.getMessage());      //放到值栈顶
     return this.SUCCESS;
    }
}

例子

struts.xml配置

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
  <constant name="struts.enable.DynamicMethodInvocation" value="false"></constant>
 <!-- <constant name="struts.custom.i18n.resources" value="itcast"></constant> -->
 <package name="struts-global" namespace="/" extends="struts-default">
 <global-results>
       <result name="errHandler" type="chain">
       <param name="actionName">errorProcessor</param>
      </result>
  </global-results>
   <global-exception-mappings>
  <exception-mapping result="errHandler" exception="java.lang.Exception">
      </exception-mapping>
  </global-exception-mappings>

  <action name="errorProcessor" class="cn.itcast.sh.error.ErrorProcess">
       <result>/error.jsp</result>
    </action>
 </package>
  <include file="struts-user.xml"></include>
</struts>
struts-user.xml中
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE struts PUBLIC
 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="user" namespace="/" extends="struts-global">
 <action name="UserAction_*" method="{1}" class="cn.itcast.sh.action.UserAction">
     <result name="userList">/user/list.jsp</result>
  </action>
  </package>
 </struts>

然后 如果页面异常 都会转向 error.jsp中 显示

error.jsp可以进行错误显示

因为信息被放到栈顶了 所以可以取到

<s:property />

时间: 2024-11-05 01:13:04

struts2异常处理的相关文章

16.如何自学Struts2之Struts2异常处理[视频]

16.如何自学Struts2之Struts2异常处理[视频] 之前写了一篇"打算做一个视频教程探讨如何自学计算机相关的技术",优酷上传不了,只好传到百度云上: http://pan.baidu.com/s/1kTDsa95 有问题可以直接回复这篇文章.

16.怎样自学Struts2之Struts2异常处理[视频]

16.怎样自学Struts2之Struts2异常处理[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了,仅仅好传到百度云上: http://pan.baidu.com/s/1kTDsa95 有问题能够直接回复这篇文章.

struts2异常处理,global-results定义全局结果处理

<global-results>定义全局结果处理一般发生异常之后 结果返回errHandler因为errHandler是由<global-exception-mappings>关联到Exception这个类了然后处理结果 <result name="errHandler" type="chain">然后它就根据<param name="actionName">errorProcessor</p

struts2异常处理机制

一.处理一般异常(javaBean异常) struts2进行异常处理首先需要添加exception拦截器,而默认拦截器栈已经加入了这个拦截器,所以不用特意的声明.在Struts 2框架中,采用声明式异常处理方式.在这种方式下,只需要在struts.xml文件中进行配置,Struts 2便能够处理异常,并跳转到相应的视图,而在Action中无须编写任何异常处理代码. 如果Action在处理请求的过程中出现异常,一个名称为exception的拦截器将拦截该异常,并进行处理.所以在struts.xml

Struts2异常处理实例

一 介绍 java ee项目在某些情况下难免会产生一些异常,如果某些异常我们没有进行处理,那么将会抛给服务器,最后服务器会将异常信息直接在前台页面打印出来,比如说这样: 像这种直接将异常打印出来是非常不好的,不仅因为普通用户看不懂,而且还会将服务器的一些内部信息暴露出来,比如说:绝对路径,这样可能将会"方便"某些黑客进行非法入侵.因此我们需要对这些异常进行处理,给用户显示一个比较友好的界面. 二 简单处理 我们可以通过struts2的全局异常处理机制来处理,这种比较简单,配置strut

struts2 异常处理3板斧

板斧1:找不到action的错误 在struts.xml中参考如下配置 1 <struts> 2 3 ... 4 <package name="default" namespace="/" extends="struts-default"> 5 6 ... 7 8 <default-action-ref name="index" /> 9 10 ... 11 12 <action na

struts2 - 异常处理机制

struts2 采用声明式的方法管理异常处理,因此,我们无需在 execute方法中编写 大量的 try...catch语句来捕获异常:只需要在 struts.xml文件中配置异常的映射机制,struts2 便能够处理并转入响应的视图资源. eg: 页面输出 异常信息: 例如internal_Error.jsp页面 <body>   <s:property value="exception.message"/> </body>

Struts2 异常处理

Struts提供了一个更简单的方式来处理未捕获的异常,并将用户重定向到一个专门的错误页面.您可以轻松地Struts配置到不同的异常有不同的错误页面. Struts的异常处理所使用的“exception”拦截容易.“exception”拦截器作为默认的栈的一部分,所以不必做任何额外的配置.它可为准备使用的盒.让我们看到了一个简单的Hello World示例进行一些修改在HelloWorldAction.java文件.在这里,我们特意推出了一个空指针异常在我们HelloWorldAction动作代码

Struts2异常处理配置

<package name="lee" extends="struts-default"> <!--定义全局结构映射 --> <global-result> <result name="sql">/sql.jsp</result> <result name="root">/root.jsp</result> </global-result