struts2异常处理介绍

我们还是以登录的例子来做介绍吧,先设计好前端页面如下图所示:

login.jsp.png

然后自定义两个异常:

UsernameException.png
PasswordException.png

编写LoginAction代码:

LoginAction.png

这里要说明的是,不是所有的验证都放入validate块中的,validate块中只进行没有业务逻辑的验证,例如:用户名长度、用户名是否为空、密码长度等,而含有业务逻辑的验证还是需要放到execute方法中的

接着编写struts.xml文件:

struts.xml.png

其中涉及到的4个jsp文件如下:

g_username_err.jsp.png
g_pwd_err.jsp.png
username_err.jsp.png
pwd_err.jsp.png

测试例子1:

依次输入zhangsan、1234,如下图所示:

test_1.png

点击登录后返回结果如下:

test_1_ret.png

测试例子2:

依次输入123456、12,如下图所示:

test_2.png

点击登录后,返回结果如下图所示:

test_2_ret.png

根据上述两个测试结果可以判断出:

全局result没有其作用,换言之局部result其作用了,那么对于全局异常与局部异常到底谁会其作用呢?这里就不在展示了,直接说出答案,局部异常会起作用

总结:

对于这个结果而言,我们只需要记住一点原则就可以了即:局部始终优于全局

struts2提供了一个比较好的异常机制,当发生某个异常的时候,让开发者决定往哪里跳转,而不是显示Tomcat堆栈信息

全局异常其实和全局变量类似,把大多数Action会出现的异常情况提取出来,这样就不用在每个Action中重复配置该异常以及result了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。