Struts2输入校验机制详解
需积分: 12 86 浏览量
更新于2024-09-16
收藏 48KB DOC 举报
"Struts2输入校验是用于确保用户提交的数据符合系统要求的重要机制,主要涉及手动输入校验和基于验证框架的输入校验。本文将总结这两种方法的实现和流程,帮助开发者理解并应用Struts2的输入校验功能。"
在Struts2中,输入校验是确保应用程序数据安全性和正确性的重要步骤。以下是关于Struts2输入校验的详细解释:
1. 手动输入完成校验:
- 基本方法:开发者可以通过在Action类中重写`validate()`方法来实现输入校验。当请求到达时,Struts2会自动调用这个方法,检查用户提交的数据是否有效。
- 对于有多个逻辑处理方法的Action,每个特定方法的校验可以重写对应的`validateXxxx()`方法,例如`validateLogin()`,只针对`login`操作进行校验。
2. 输入校验流程:
- 类型转换器:首先,Struts2的类型转换器会尝试将HTTP请求参数转换为相应的Java类型,并赋值给Action的属性。
- 异常处理:在转换过程中如果出现异常,异常信息会被保存到ActionContext中,并由`conversionError`拦截器包装成`fieldError`。
- 验证方法调用:接着,Struts2会通过反射调用对应的`validateXxx()`或`validate()`方法。
- 错误处理:如果验证失败,系统将转向`input`视图指定的资源,因此需要在配置文件中为每个验证方法指定`input`属性。
- 正常处理:验证成功后,系统将继续执行用户请求的方法。
3. 基于验证框架的输入校验:
- 配置文件:开发者需要创建校验配置文件,通常命名为`action类名-validation.xml`。如果一个Action有多个逻辑方法,可以为特定方法创建如`action类名-name属性名-validation.xml`的文件,这里的`name属性名`是Struts配置文件中的相应属性。
- 配置文件位置:这些文件需要放在与Action类相同的目录下。
- 验证规则加载:Struts2会首先加载`action类名-validation.xml`,然后加载指定方法的配置文件。
- 校验器配置:有两种类型,字段校验器和非字段校验器。字段校验器配置中,需要指定被校验的字段、校验器类型、参数和错误消息。
字段校验器配置示例:
```xml
<field name="被校验的字段">
<field-validator type="校验器名">
<!-- 参数配置 -->
<param name="参数名">参数值</param>
<!-- 错误消息 -->
<message key="I18Nkey">校验失败后的提示信息</message>
</field-validator>
</field>
```
错误消息可以使用`getText("I18Nkey")`来获取国际化信息,避免Freemarker模板错误。
Struts2提供了灵活的输入校验机制,无论是手动校验还是基于框架的校验,都能有效地确保用户输入的数据符合业务规则,从而提高系统的稳定性和安全性。
2010-10-21 上传
2019-04-16 上传
2011-11-07 上传
2010-09-18 上传
2019-05-25 上传
2010-04-21 上传
2011-04-21 上传
古市轩
- 粉丝: 52
- 资源: 13
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍