struts2的action可能出现訪问不到,或action报异常等情况,所以须要作一些处理,给用户一个友好的印象。

1. 异常处理  result声明在action中

<action name="book_*" class="com.stone.action.BookAction" method="{1}">
<result name="{1}" type="dispatcher">/WEB-INF/jsp/book_{1}.jsp</result>
<result name="error-result">/WEB-INF/jsp/error_result.jsp</result>
<exception-mapping result="error-result" exception="java.lang.Exception" />
</action>

先在action中,定义了一个名为“error-result”的result,当前在action中捕获到java.lang.Exception时。映射到"error-result",即跳转到error_result.jsp

注:exception能够是随意一个RuntimeException,能够是自己定义的异常。

2. 异常处理 result使用全局result

<global-results>
<result name="exceptionError" type="dispatcher">/WEB-INF/jsp/error/struts_exception.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="exceptionError" exception="java.lang.Exception" />
</global-exception-mappings>

定义一个全局的result,名为exceptionError。全局范围内。捕获到java.lang.Exception时,映射到exceptionError。跳转到相应的jsp。

3. 訪问地址相应的Action不存在时  使用默认的action

<default-action-ref name="error" />
<action name="error">
<result>/WEB-INF/struts_errorAction.jsp</result>
</action>

定义默认的action-引用。引用自后面的action-error。

当解析到訪问的action不存在时。就调用该默认action。

4. 訪问的网页、资源等不存在时 使用web.xml配置

<error-page>
<error-code>404</error-code>
<location>/WEB-INF/404.html</location>
</error-page>

error-code 错误http状态码,location映射到的地址

5.web.xml也能够处理exception,它处理的是Servlet和动态页面上的异常。

<error-page>
<!-- 监听到servlet、动态网页中报的相关异常时才会触发 -->
<exception-type>java.lang.NullPointerException</exception-type>
<location>/WEB-INF/exception.html</location>
</error-page>

JavaEE SSH框架整合(三) struts2 异常、http错误状态码处理的更多相关文章

  1. JavaEE SSH框架整合(四) 日志处理Spring结合 log4j、slf4j [转]

    1. 加入log4j和slf4j的jar包 2. web.xml: <context-param> <!--log4j配置地址 --> <param-name>lo ...

  2. SSH框架整合

    SSH框架整合 一.原理图 action:(struts2) 1.获取表单的数据 2.表单的验证,例如非空验证,email验证等 3.调用service,并把数据传递给service Service: ...

  3. Spring+Hibernate+Struts(SSH)框架整合

    SSH框架整合 前言:有人说,现在还是流行主流框架,SSM都出来很久了,更不要说SSH.我不以为然.现在许多公司所用的老项目还是ssh,如果改成流行框架,需要成本.比如金融IT这一块,数据库dao层还 ...

  4. MVC+Spring.NET+NHibernate .NET SSH框架整合 C# 委托异步 和 async /await 两种实现的异步 如何消除点击按钮时周围出现的白线? Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法

    MVC+Spring.NET+NHibernate .NET SSH框架整合   在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MV ...

  5. SSH框架整合过程总结

    ---------------------siwuxie095                                 SSH 框架整合过程总结         (一)导入相关 jar 包(共 ...

  6. dwr与ssh框架整合教程

    (1)dwr与ssh框架整合教程dwr框架介绍. DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开 发人员开发包含AJ ...

  7. ssh框架整合之登录以及增删改查

    1.首先阐述一下我用得开发工具,myeclipse2017+oracle,所以我的基本配置步骤可能不一样,下面我用几张图来详解我的开发步骤. ---1先配置structs (Target 选择apac ...

  8. 【SSH框架】之Struts2系列(二)

    微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联 1.Struts2常量配置 (1).Struts2默认常量配置文件路径,如下图: (2).Strut ...

  9. SSH框架整合思想

    --------------------siwuxie095                                 SSH 框架整合思想         1.SSH 框架,即 Struts2 ...

随机推荐

  1. Xcode7 修改bundle identifier

    Xcode 7 与之前的版本在修改bundle identifier的时候一点需要注意: 除了需要在.plist文件中修改, 还需要在 build setting中的 Product Bundle I ...

  2. 由tomcat启动想到的

      1.batch:批处理文件,表示一批 2.profile:轮廓 3.用户变量和系统变量的关系是什么?     答:点击"我的电脑→属性→高级"标签的"环境变量&quo ...

  3. 李洪强iOS开发Swift篇—09_属性

    李洪强iOS开发Swift篇—09_属性 一.类的定义 Swift与Objective-C定义类的区别 Objective-C:一般需要2个文件,1个.h声明文件和1个.m实现文件 Swift:只需要 ...

  4. Android用户界面 UI组件--TextView及其子类(五) DigitalClock,AnalogClock,RadioButton,CheckBox,ToggleButton汇总

    DigitalClock和AnalogClock两个时钟类 可以为DigitalClock设置背景图片,自定义时针,秒针,分针的样式 例子: <?xml version="1.0&qu ...

  5. 行为树实现AI逻辑

    http://blog.csdn.net/kenkao/article/details/6099966 http://www.aisharing.com/archives/99 http://www. ...

  6. 【CF】223 Div.1 C Sereja and Brackets

    水线段树. /* 380C */ #include <iostream> #include <string> #include <map> #include < ...

  7. Android 网络通信框架Volley简介(Google IO 2013)

    1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient( ...

  8. 开源cms

    提起开源cms,大家第一想到的是php的cms,因为php开源的最早,也最为用户和站长们认可,随着各大cms系统的功能的不断完善和各式各样的开源cms的出现,.net和java的高端的cms系统也逐渐 ...

  9. Reward

    Reward Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  10. 【转】.NET 三层架构 中 DAL+IDAL+Model+BLL+Web

    其实三层架构是一个程序最基本的 在.Net开发中通常是多层开发 比如说 BLL 就是business Logic laywer(业务逻辑层) 他只负责向数据提供者也就是DAL调用数据 然后传递给 客户 ...