`
huanglanfa
  • 浏览: 21278 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

struts错误处理页面

阅读更多
  一.处理异常的exception和global-exception
    在Web应用中,对异常处理位置都是业务逻辑失败的信息.因为异常处理还需要编写ActionErrors,给出报错信息将导致在Action会看到许多的ActionErrors的代码.
    struts解决了这个问题,它允许程序员配置任何异常,并且在将异常转化为报错信息的时候,不必须自行使用"try catch"来捕捉,写报错转发到出错页面.
    1.局部异常
       就是针对一个Action响应所抛出的异常,该异常将只负责Action的程序段,并且自定义在<action>元素中.

   局部异常的定义:
   <action-mapping>
    <action
       input="SampleJsp.jsp" 指定了SampleForm对象使用的ActionForrm对象名称,与form-bean元素定义的name属性一致
      name="SampleForm"  指定了SampleForm对象使用的ActionForm对象名称
       path="/SampleAction" 如果使用了SampleForm.do的响应,那么ActionServlet控制器组件就会自动找到本Action对象
       scope="request"   使用ActionForm的范围
       type="struts.sample.cap3.sample1.action.SampleAction"  解释本Action对象的路俓
       validate="false">   定义使用的ActionForm在Action是否需要检验
       <expetion
       key="userNameException"  指定了在资源配置文件中报错信息的键
       path="/SampleJsp.jsp"   指定了报错之后所转发到的JSP页面,在该页面中可以通过标签库来读取报错信息,并显示
       type="struts.sample.cap3.sample1.exception.UserNameException"/> 指定了该异常类的java实体名
       <exception
        key="SampleJsp.jsp"
        type="java.sql.SQLException"/>
      </action>
       </action-mappings>

2.全局异常
        指对所有定义在Struts-config.xml的Action程序都进行处理,他定义在<global-exception>元素中
      <global-exception>
      <exception
      key="passWordException.jsp"
      path="SampleJsp.jsp"
      type="struts.sample.cap3.sample.exception.passWordException"/>
     <global-exception>
      定义全局变量时无需将<exception>元素作为任何<action>元素的子元素,而是直接作为 <global-exception>的子元素.

  简单示例:
   (1).自定义标签类
       UserNameException.java

package struts.sample.cap3.sample1.exception;
public class UserNameException extends Exception {
   public UserNameException(){
    super();
   }
   public UserNameException(String message){
    super();
  }
   public UserNameException(String message,Throwable cause){
    super(message,cause);
   }
   public UserNameException(Throwable cause){
    super(cause);
   }
   public UserNameException(Exception exc){
    super(exc);
   }

}


(2)业务逻辑类
UserNameService.java

package struts.sample.cap3.sample1.service
  import struts.sample.cap3.sample1.exception.UserNameException;
  import struts.sample.cap3.sample1.exception.UserNameException2;
public class UserNameService {
  public void UserNameLogic() throws UserNameException{
   throw new UserNameException("UserName");
  }

}


(3)Action类
SampleAction.java
  
package struts.sample.cap3.sample1.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import struts.sample.cap3.sample1.exception.UserNameException;
import struts.sample.cap3.sample1.service.UserNameService;
public class SampleAction extends Action{
   public ActionForward execute(
     ActionMapping mapping,
     ActionForm form,
     HttpServletRequest request,
     HttpServletResponse response) throws Exception{
    UserNameService userNameService=new UserNameService();
    return  null;
   }

}


(4)资源配置文件
application.properties
userNameException=用户名无法确定
XXX=XXX
....

(5)JSP页面

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page language="java"%>

<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<html>
<head><title>JSP for SampleForm</title>
</head>
<body>
<html:errors/><p/>
<html:form action="SampleAction.do">
userName : <html:text property="userName"/><br/>
password : <html:password property="password"/><br/>
sex: <html:select property="sex">
     <html:option key="F" value="F"/>
     <html:option key="M" value="M"/>
      </html:select><br/>
      age : <html:text property="age"/><br/>
      email : <html:text property="email"/><br/>
      <html:submit/><html:cacel/>
      </html:form>
</body>
</html>


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huoqubing/archive/2009/07/06/4324214.aspx
分享到:
评论

相关推荐

    struts错误处理机制小例子

    例如,可以为所有类型的Exception配置一个通用的错误处理页面。 3. **ActionMapping的errorKey属性**:在配置Action时,可以通过errorKey属性指定当该Action执行失败时,要显示的错误信息。这些错误信息可以在JSP...

    struts的错误处理

    ### Struts 的错误处理 #### 一、简介与背景 Struts 是一款开源的MVC(Model-View-Controller)框架,主要用于Java EE环境下的Web应用程序开发。它提供了一种结构化的方式来组织业务逻辑、视图层以及模型层,使得...

    07Struts错误处理

    ### Struts错误处理详解 #### 一、引言 在软件开发过程中,错误处理是非常重要的一个环节,尤其对于Web应用而言更是如此。Struts作为一款经典的MVC框架,在Java Web开发领域有着广泛的应用。本文将深入探讨Struts...

    Struts错误处理

    郭克华可能是一位专注于Java EE技术的专家,他讨论的"Struts错误处理"主题,旨在帮助开发者更好地理解和解决在使用Struts时遇到的问题。 在Struts框架中,错误处理主要涉及以下几个方面: 1. **ActionError和...

    Struts2简单的页面跳转示例

    例如,如果业务逻辑执行失败,我们可以返回"error",并将结果配置为错误提示页面: ```xml &lt;result name="error"&gt;/pages/error.jsp ``` 此外,Struts2还支持动态结果页面,可以使用OGNL(Object-Graph Navigation ...

    struts2 跳转至404 页面的解决方案

    7. **错误处理配置**:Struts2允许自定义错误页面。检查`struts-default.xml`或自定义的配置文件,确认404错误是否被正确地映射到了一个自定义的错误页面。 8. **IDE或服务器设置**:有时候,开发环境或服务器的...

    struts1.3页面跳转问题

    Struts1.3是一个经典的Java Web框架,用于构建企业级应用程序。在Struts1.3中,页面跳转是常见...在实际项目中,根据业务需求灵活选择请求转发或重定向,同时注意数据传递和错误处理,将有助于提升用户体验和代码质量。

    Struts 友好错误提示

    在Struts 1中,我们通常会在struts-config.xml文件中配置全局的`&lt;global-exceptions&gt;`元素,为特定的异常定义处理页面。例如: ```xml ``` 这段代码表示,如果任何地方抛出未捕获的异常,Struts会将控制权交给...

    struts2国际化 标签 页面 处理类

    在Struts2中实现国际化,主要包括配置、JSP页面、表单和Action类的处理。 首先,在`struts.xml`配置文件中,我们需要声明全局的国际化资源文件。通过设置常量`struts.custom.i18n.resources`的值为`message`,我们...

    应用Struts2处理表单数据

    9. **异常处理(Exception Handling)**:通过配置全局异常处理,Struts2可以捕获并统一处理Action执行过程中的异常,提供一致的错误反馈。 10. **国际化(Internationalization, i18n)**:Struts2支持多语言,...

    struts的简单新建和登录页面

    这个方法会在ActionForm被提交到Action之前自动调用,如果验证失败,Struts会将错误消息添加到ActionMessage中,然后返回到原来的JSP页面,显示错误信息。 对于验证,Struts提供了内置的验证框架,允许开发者在...

    struts手动异常处理

    2. **全局异常处理**:Struts允许我们在配置文件中定义全局异常映射,这样所有Action中的未捕获异常都会被映射到特定的结果页面。在`struts.xml`或`struts-default.xml`中,可以使用`&lt;global-exception-mappings&gt;`...

    Struts2中实现页面的跳转

    3. **Web.xml中的FORWARD配置**:在web.xml中,`&lt;error-page&gt;`标签可以用来配置错误处理页面,例如404错误。如果`&lt;jsp:forward/&gt;`指向的页面不存在,服务器会抛出404错误,此时需要确保web.xml中有正确的错误处理...

    Struts2异常处理机制

    Struts2作为一款流行的Java Web框架,其异常处理机制是其核心功能之一,它使得开发者能够优雅地管理和处理应用程序中的异常情况,提供了一种统一的错误处理方式,从而提高用户体验并增强程序的健壮性。 在Struts2...

    ajax无页面刷新验证、struts结构+ajax+验证码jsp页面

    本主题主要关注的是如何在Struts框架下结合Ajax实现无页面刷新的验证码验证功能,以及在JSP页面中处理验证码的部分。 首先,我们来理解一下Struts框架。Struts是一种基于MVC(Model-View-Controller)设计模式的...

    Struts2之异常处理案例struts003

    在Struts2中,异常处理是一项重要的功能,它确保在应用程序遇到错误时能够优雅地处理,提供友好的用户反馈,并保持系统稳定性。下面将详细讨论Struts2中的异常处理机制及其相关知识点。 1. **异常处理机制概述** ...

    使用Spring整合Struts编写多页面用户注册模块

    总的来说,整合Spring和Struts编写多页面用户注册模块涉及到的主要知识点有:Spring的DI和AOP,Struts的MVC架构,Action和Result的配置,以及JSP或模板引擎的使用。通过这样的整合,我们可以构建出一个灵活、可扩展...

    Struts2类型转换(一)----常规类型,自定义类型,错误处理

    本篇文章将深入探讨Struts2中的类型转换机制,包括常规类型转换、自定义类型转换以及错误处理。 首先,我们来看**常规类型转换**。Struts2框架内建了一套完整的类型转换器,能够自动处理常见数据类型,如String、...

    struts2错误显示

    相较于Struts1.x版本,Struts2提供了更为强大的功能,尤其是在处理用户输入验证方面。 在Struts2中,可以通过多种方式进行验证: 1. **Action类内部实现**:在Action类中直接编写`validate()`方法来进行数据验证。 ...

    Struts1异常处理

    这段配置表示,如果任何地方抛出了`java.lang.Exception`或其子类,Struts将会转发到`error.jsp`页面来显示错误信息。 3. **自定义异常处理**:除了全局异常处理,还可以在`&lt;action&gt;`标签内定义特定的异常处理规则...

Global site tag (gtag.js) - Google Analytics