Struts2输入校验机制详解
需积分: 12 184 浏览量
更新于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 上传
2010-09-18 上传
2011-11-07 上传
2019-05-25 上传
2010-04-21 上传
古市轩
- 粉丝: 52
- 资源: 13
最新资源
- Proxy-Table-SwiftUI:SwiftUI中的HTTPS代理列表
- ThinkMachine-Advisor:使用ThinkMachine规则的GUI
- java8stream源码-MS-Translator-Speech-HoL:MS-Translator-Speech-HoL
- LiteImgResizer-开源
- 易语言图片修改大小源码.zip易语言项目例子源码下载
- java8集合源码-bookmark:书签
- ARM开发工程师入门宝典.zip
- dgsim:SyncroSim基本软件包,用于模拟野生动物种群的人口统计数据
- TicTacToe
- Gordian Knot-开源
- react-hooks-booklist-tutorial
- 读取excel文件到高级表格.zip易语言项目例子源码下载
- TSC指令大全.rar
- java版商城源码-dev-cheat-sheet:只是一个快速工具和代码片段的汇编,以启动您的开发,主要是针对Web和API。贡献是开放的!
- BounceBall:使用SFML库用C ++编写的简单游戏
- RxSwift-main.zip