struts2异常处理介绍

2018-05-19  本文已影响0人  pr0metheus

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

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了

上一篇 下一篇

猜你喜欢

热点阅读