首页 > 代码库 > Struts——(四)异常处理机制
Struts——(四)异常处理机制
在通常的情况下,我们得到异常以后,需要将页面导航到一个错误提示的页面,提示错误信息。利用Stuts我们可以采用两种方式处理异常:
1.编程式异常处理
- 即我们在Action中调用业务逻辑层对象的方法时,用try{ }catch的方式来截获异常之后,手工对异常进行处理
- 在编程式异常处理的时候,我们可以使用struts的消息处理机制来对这些异常信息进行处理。
2. 自动异常处理机制
- 即在Action中不捕捉异常,而是将异常抛出给struts框架处理
- 我们需要在配置文件中指示struts如何处理这些被抛出的异常
- 使用<exception/>元素来定义自动异常处理
一、主要步骤:
1. 配置Exception标签:struts-config.xml
1 <action path="/login" type="com.jialin.LoginAction" name="userForm" scope="request" validate="true" attribute="uf" input="/index.jsp"> 2 <exception key="login.user.not.found" type="com.jialin.UserNotFoundException" /> 3 <exception key="login.password.error" type="com.jialin.PasswordErrorException" path="/LoginFail.jsp" /> 4 5 </action>
该Exception只对当前action起作用,也可以配置全局exception
1 <global-exceptions> 2 <exception key="login.user.not.found" type="com.jialin.UserNotFoundException" /> 3 <exception key="login.password.error" type="com.jialin.PasswordErrorException" path="/LoginFail.jsp" /> 4 </global-exceptions>
1)<exception/>元素配置的关键属性是:
- key – 即这个异常所对应的错误提示消息文本的key,这个key的值,需要在资源属性文件中进行定
- type – 即定义需要处理哪种类型的Exception
- path – 定义一旦出现异常,需要转向哪个页面来进行提示,如果不定义path属性,默认情况下,将使用Action配置中的input属性的值来作为转向的页面
2)哪个优先?——就近原则
2. 在JSP页面,使用:<html:errors/>标签
即可将其异常对应的错误消息文本进行显示
1 ** 2 * 登录action 3 * 4 * @author jialin 作用:取得表单数据,调用model层业务逻辑,返回转向信息 5 */ 6 public class LoginAction extends Action { 7 8 @Override 9 public ActionForward execute(ActionMapping mapping, ActionForm form, 10 HttpServletRequest request, HttpServletResponse response) 11 throws Exception { 12 UserActionForm userForm = (UserActionForm) form; 13 String userName = userForm.getName(); 14 int password = userForm.getPassword(); 15 16 UserManage userManage = new UserManage(); 17 User user = new User(); 18 user.setName(userName); 19 user.setPassword(password); 20 //这里不再有trycatch语句 21 userManage.ValidateUser(user); 22 return mapping.findForward("success"); 23 24 } 25 26 } 27 28 29 <span style="font-family:Arial;BACKGROUND-COLOR: #ffffff"></span>
二、就近原则
Struts——(四)异常处理机制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。