struts2异常处理,global-results定义全局结果处理
2014-06-11 12:52
417 查看
<global-results>定义全局结果处理 一般发生异常之后结果返回errHandler
因为errHandler是由<global-exception-mappings>关联到Exception这个类了 然后处理结果
<resultname="errHandler"type="chain">
然后它就根据
<paramname="actionName">errorProcessor</param>
找action
<actionname="errorProcessor"class="cn.itcast.sh.error.ErrorProcess"> <result>/error.jsp</result> </action> 处理了然后返回到error.jsp
在struts.xml中
<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constantname="struts.devMode"value="true"/>
<constantname="struts.enable.DynamicMethodInvocation"value="false"></constant>
<!--<constantname="struts.custom.i18n.resources"value="itcast"></constant>-->
<packagename="struts-global"namespace="/"extends="struts-default">
<global-results>
<resultname="errHandler"type="chain">
<paramname="actionName">errorProcessor</param>
</result>
</global-results>
<global-exception-mappings>
<exception-mappingresult="errHandler"exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<actionname="errorProcessor"class="cn.itcast.sh.error.ErrorProcess">
<result>/error.jsp</result>
</action>
</package>
然后其他包都继承它就默认使用了其中定义的错误处理
然后实现类
class="cn.itcast.sh.error.ErrorProcess"
packagecn.itcast.sh.error;
importcom.opensymphony.xwork2.ActionContext;
importcom.opensymphony.xwork2.ActionSupport;
publicclassErrorProcessextendsActionSupport{
privateExceptionexception;
publicExceptiongetException(){
returnexception;
}
publicvoidsetException(Exceptionexception){
this.exception=exception;
}
@Override
publicStringexecute()
{
ActionContext.getContext().getValueStack().push(this.exception.getMessage()); //放到值栈顶
returnthis.SUCCESS;
}
}
例子
struts.xml配置
<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constantname="struts.devMode"value="true"/>
<constantname="struts.enable.DynamicMethodInvocation"value="false"></constant>
<!--<constantname="struts.custom.i18n.resources"value="itcast"></constant>-->
<packagename="struts-global"namespace="/"extends="struts-default">
<global-results>
<resultname="errHandler"type="chain">
<paramname="actionName">errorProcessor</param>
</result>
</global-results>
<global-exception-mappings>
<exception-mappingresult="errHandler"exception="java.lang.Exception">
</exception-mapping>
</global-exception-mappings>
<actionname="errorProcessor"class="cn.itcast.sh.error.ErrorProcess">
<result>/error.jsp</result>
</action>
</package>
<includefile="struts-user.xml"></include>
<includefile="struts-login.xml"></include>
</struts>
struts-user.xml中
<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<packagename="user"namespace="/"extends="struts-global">
<actionname="UserAction_*"method="{1}"class="cn.itcast.sh.action.UserAction">
<resultname="userList">/user/list.jsp</result>
</action>
</package>
</struts>
然后如果页面异常都会转向error.jsp中显示
error.jsp可以进行错误显示
因为信息被放到栈顶了所以可以取到
<s:property/>
相关文章推荐
- struts2异常处理,global-results定义全局结果处理
- struts2异常处理,global-results定义全局结果处理
- Struts2中防止表单重复提交,global-results定义全局结果处理
- 4、struts2异常处理及全局异常与结果剖析、struts2模型驱动及分层体系架构
- Struts2 global_results 全局结果集
- Struts2 global-results(全局结果)+异常映射 Results结果类型
- Struts2的全局结果集Global_Results、动态结果集dynamic_result、带参数的结果集
- Struts2 全局结果类型<global-results>
- struts2全局异常处理及配合log4j异常日志记录
- Struts2全局结果集Global Results
- result之global-results全局结果集
- Android全局异常处理 实现自己定义做强制退出和carsh日志抓取
- Struts2中将global-exception定位到一个Action中处理,及获取其异常信息的方法
- Struts2中配置全局异常处理时报错 org.xml.sax.SAXParseException
- global-results定义全局的result不起作用
- Struts2 -- 全局异常处理(拦截器)
- Struts2(七)global-results 和 extends 和动态结果集详解
- Struts2全局异常 全局结果的配置
- global-results定义全局的result不起作用
- struts2系列十四之globalresult全局返回结果