Struts 2 异常处理 - 异常拦截器2025年3月17日 | 阅读 3 分钟 在我们的 Web 应用程序中,任何时候都可能发生异常。 为了解决这个问题,Struts 2 提供了一种全局异常处理机制,我们可以向用户显示全局结果。 Struts 2 会自动记录未捕获的异常,并将用户重定向到错误处理页面。 理解异常拦截器的内部工作原理如果发生异常,它会被包装在 ExceptionHolder 中,并推送到 value stack 中,以便我们可以轻松地从结果访问异常对象。 建议将此拦截器作为第一个拦截器,以便它可以处理所有异常,无论它是由其他拦截器抛出的。异常拦截器的参数为异常拦截器定义了 3 个参数。 全部都是可选的。
Struts 2 中异常处理的例子对于异常处理,我们在 struts.xml 文件中指定 global-result 和 global-exception-mappings。 struts.xmlpackage 的global-results子元素指定此包的全局结果。 global-result 的result子元素指定将作为视图呈现给用户的结果页面。 package 的global-exception-mappings子元素指定此包的所有操作的异常映射。 global-exception-mapping 的exception-mapping子元素为给定的异常类型映射给定的结果。 在此示例中,我们使用 Exception,它是许多异常类(例如 IOException、ArithmeticException 等)的父类。 这意味着如果发生任何异常,将调用指定的结果。 请注意,global-results 必须在 global-exception-mappings 之前指定,因为我们在 global-exception-mappings 中使用 global result。显示异常我们可以通过打印 exception 或 exceptionStack 在浏览器上显示异常。 exception 对象打印异常名称,而 exceptionStack 打印异常详细信息。 globalresult.jsp异常处理的完整例子完成此示例所需的其他资源如下
1) 创建 index.jsp 用于输入此 jsp 页面使用 struts UI 标签创建一个表单。 它接收用户的姓名和密码。 index.jsp2) 创建 action 类这个 Action 类包含两个字段 name 和 password 以及一个方法 execute。 在这里,如果密码匹配 struts,我们会自行抛出异常。 这是一个虚拟示例,如果您注释掉 execute 方法中提到的行,则不会发生异常。 Login.java3) 创建视图组件有三个视图组件 globalresult.jsp 显示异常消息,welcome.jsp 显示包含用户名的欢迎消息,error.jsp 显示错误消息。 globalresult.jspwelcome.jsperror.jsp下一主题Struts2 文件上传示例 |
我们请求您订阅我们的新闻通讯以获取最新更新。