Struts2技术深度解析:Action、Result、异常处理与类型转换

需积分: 1 0 下载量 124 浏览量 更新于2024-07-29 收藏 1.92MB DOC 举报
"Struts2学习文档,由周亮撰写,日期2011-07-19,涵盖了Struts2框架的Action、Result、模型驱动、异常处理、类型转换和输入校验等多个核心概念。" Struts2是Java Web开发中的一个流行MVC框架,它简化了Web应用的构建过程。以下是文档中详细阐述的一些关键知识点: 1. **Struts2 Action** - **Action通过ActionContext间接访问ServletAPI**:ActionContext提供了与Servlet容器交互的桥梁,可以访问请求、响应、session等对象。 - **Action通过ActionContext直接访问ServletAPI**:ActionContext类允许Action直接获取HttpServletRequest和HttpServletResponse,进行数据读写或跳转操作。 - **Action通过实现相应接口获取相应实例**:例如,实现ServletActionContextAware接口,可以直接获取到ServletActionContext实例。 - **Action通过ServletActionContext类的静态方法**:直接调用ServletActionContext的静态方法,如getThreadLocalRequest()和getThreadLocalResponse(),以访问当前线程的请求和响应。 2. **Struts2 Result** - **type="plainText"**:用于返回纯文本内容。 - **type="redirect"**:实现HTTP级别的重定向,客户端发起新的请求。 - **type="redirectAction"**:内部跳转,保持请求参数,并且避免多次提交。 - **动态结果**:允许在配置文件中动态指定结果类型。 - **请求参数决定结果**:根据请求参数来选择不同的结果。 - **全局结果**:定义在struts.xml中的全局结果,可应用于所有Action,减少重复配置。 3. **Struts2 模型驱动**:模型驱动模式下,Action无需包含业务逻辑,仅负责接收请求、转发控制,模型对象承载数据。 4. **Struts2 异常处理** - **局部异常映射**:在Action配置中定义特定异常的处理方式。 - **全局异常映射**:在struts.xml中配置,对所有Action统一处理异常。 - **未知处理器**:当Action没有对应的Execute方法时的处理策略。 - **综合示例**:结合以上机制,实现灵活的异常处理流程。 5. **Struts2 类型转换** - **Struts2内建的类型转换器**:框架提供了一些默认的转换器,如将String转换为基本类型。 - **基于OGNL的类型转换**:通过OGNL表达式进行复杂的转换,例如将字符串转换为复合类型。 - **自定义类型转换器**:分为局部和全局,可以针对特定Action或全局应用。 - **局部转换器**:只影响特定Action的字段。 - **全局转换器**:应用于整个应用的所有Action。 - **类型转换错误处理**:当转换失败时,Struts2提供机制处理异常并展示错误信息。 6. **Struts2 输入校验** - **输入校验概述**:包括客户端验证和服务端验证,以及类型转换后的校验。 - **基本输入校验**:使用注解或者XML配置进行字段级的校验规则定义。 - **编写校验规则**:自定义校验规则,例如验证长度、格式等。 这个文档深入探讨了Struts2框架的关键组件和功能,为开发者提供了全面的学习材料,帮助他们理解和掌握Struts2的使用方法。