近期看了下Struts2.0 发现可以对异常以配置的方式进行特定的处理,这可是非常实用的功能,于是乎拉出来练练。
原来一些书籍中描述的全局配置只是针对某给包内的全局配置,如下:
<package name="orgPkg" extends="exceptionPkg">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
<exception-mapping result="error" exception="java.sql.SQLException"></exception-mapping>
</global-exception-mappings>
<action name="addOrgAction" class="com.taomujian.action.AddOrgAction">
<result name="success" type="redirectAction">
<param name="actionName">org</param>
</result>
<result name="input">org/addOrg.jsp</result>
</action>
</package>
那该所谓的全局异常只是针对该包内的配置起作用,那如何配置真正的全局异常处理呢?
这就要注意下package中extends这个属性了,我们可以单独建立一个包用来配置全局属性,然后其他包都继承该包,则自动集成了该包中配置的全局属性。如下:
<package name="exceptionPkg" extends="struts-default">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception"></exception-mapping>
<exception-mapping result="error" exception="java.sql.SQLException"></exception-mapping>
</global-exception-mappings>
</package>
<package name="orgPkg" extends="exceptionPkg">
<action name="addOrgAction" class="com.taomujian.action.AddOrgAction">
<result name="success" type="redirectAction">
<param name="actionName">org</param>
</result>
<result name="input">org/addOrg.jsp</result>
</action>
</package>
继承:这可是面向对象的基本概念!
分享到:
相关推荐
项目中出现的异常通常要用一个友好的异常页面来显示,通过对struts2.xml的配置能拦截全局异常,只要出现异常就会转向异常页面。
在Struts2中,处理程序方法可能会抛出各种异常,为了提供统一的错误处理和用户友好的异常提示,我们可以定义全局异常提示。这篇博文主要探讨的是如何在Struts2中设置和使用全局异常提示属性文件。 首先,我们要理解...
Struts2集成了Log4j等日志框架,开发者可以配置日志级别,以便在开发和生产环境中获取合适的日志信息。 10. **最佳实践** - 应该尽量避免在Action方法中使用`try-catch`块,而是依赖于Struts2的异常处理机制。 - ...
1. **全局异常处理**:在Struts2的配置文件中,可以定义一个或多个`<global-exception-mappings>`标签来处理全局异常。这些映射可以指定一个特定的Action或结果来处理特定类型的异常。例如,当发生`...
通过在`struts.xml`或相应的配置文件中定义全局异常处理,可以为整个应用设定统一的异常处理策略。全局异常处理通常用于处理那些没有被Action或者拦截器捕获的异常。你可以定义一个全局的结果类型(如`global-...
在Struts2中,全局转换器(Global Converters)是一个关键特性,它允许开发者为整个应用定义统一的数据类型转换规则,而不是在每个Action类中单独配置。这个特性大大提高了代码的复用性和维护性。 标题“Struts2...
全局异常控制是通过在Struts配置文件(struts-config.xml)中定义全局异常映射(global-exception-mappings)来实现的。在这个映射中,你可以指定当特定类型的异常发生时,Struts 应该调用哪个Action或者Forward进行...
Struts2提供了ActionError和FieldError接口,允许我们在Action类中捕获并添加错误信息,然后通过配置struts.xml文件,定义全局或特定Action的异常处理规则,使这些错误以JSON格式响应。 首先,你需要在Action类中抛...
总的来说,Struts2的配置涉及到很多方面,包括Action、拦截器、结果和全局配置。通过灵活的配置,开发者可以根据项目需求定制自己的MVC架构,提高开发效率和代码的可维护性。了解并掌握Struts2的配置,对于Java web...
- `<global-exception>`: 全局异常处理配置。 - `<global-forward>`: 全局转发配置。 - `<action-mapping>`: 动作映射配置。 - `<controller>`: 控制器配置。 - `<message-resources>`: 国际化资源文件配置。 ...
在Struts2中定义全局类型转换器,你需要创建一个实现`org.apache.struts2.conversion.Converter`接口的类,并在配置文件中声明。`.classpath`、`.mymetadata`、`.project`和`.myeclipse`这些文件是Eclipse或...
在`struts.xml`配置文件中的`<global-exception-mappings>`元素定义了全局异常映射。一旦Action中抛出的异常匹配到这里的异常类型,就会跳转到相应的结果页面。例如,如果抛出的是`PasswordException`,Struts2会将...
2. **xwork-core.jar**:XWork是Struts2的基础,提供了许多底层的功能,如类型转换、对象管理、异常处理等。 3. **ognl.jar**:Object-Graph Navigation Language (OGNL) 是Struts2中的表达式语言,用于在模型和视图...
同时,通过配置全局异常处理器,可以统一处理应用中的异常。 9. 插件使用:Struts2拥有丰富的插件,如Struts2-convention插件可以自动发现Action和Result,极大地减少了XML配置工作;Struts2-dojo-plugin则提供了与...
- **全局配置**:在`struts-default.xml`或`struts-plugin.xml`中,可以设置全局拦截器、常量等。 - **应用配置**:在`struts.xml`中定义Action、结果类型、拦截器栈等,这是应用的核心配置文件。 3. **Action...
4. `<constant>`:用于设置Struts2的全局配置属性,如`struts.devMode`,以开启或关闭开发模式。 `<package>`元素中最重要的子元素是`<action>`,它定义了一个具体的处理用户请求的控制器。`<action>`元素包含`name...
在Struts2中,`struts.xml`是核心配置文件,它定义了应用的行为、动作、结果和其他组件。为了在Eclipse这样的集成开发环境中获得代码提示和自动完成,我们需要引入DTD(文档类型定义)文件,例如`struts-2.3.dtd`。 ...
struts.xml是Struts2框架的主要配置文件,它定义了应用程序的行为,包括Action的映射、拦截器的设置、结果页面的返回以及全局常量的配置。在DTD(文档类型定义)中,可以看到struts.xml支持的元素,如`package`、`...
2. **全局异常处理**:Struts允许我们在配置文件中定义全局异常映射,这样所有Action中的未捕获异常都会被映射到特定的结果页面。在`struts.xml`或`struts-default.xml`中,可以使用`<global-exception-mappings>`...
5. **错误和异常处理**:配置Struts2的全局结果,处理可能出现的异常情况,提供友好的错误页面。 6. **测试**:确保每个组件都能正确运行,进行单元测试和集成测试是必不可少的。 综上所述,"struts2+jpa+spring...