Struts2 验证框架详解:配置与方法验证
需积分: 9 3 浏览量
更新于2024-09-11
收藏 102KB DOC 举报
"struts2最全验证框架"
Struts2是一个流行的Java web应用程序框架,它提供了许多功能,包括数据验证。Struts2的验证框架是其核心特性之一,用于确保用户输入的数据符合预定义的规则,从而提高应用程序的安全性和数据质量。
在Struts2中,配置验证通常涉及到以下几个步骤:
1. **配置Action**: 首先,你需要在`struts.xml`或相应的配置文件中定义Action。这里的关键是设置`input`属性,这是当验证失败时,用户将被重定向到的页面。例如:
```xml
<action name="validateAdd" class="com.struts2.validator.ValidateAction" method="add">
<result name="input">/path/to/input/page.jsp</result>
</action>
```
这样,如果验证失败,用户会被送回`input`页面以便重新输入数据。
2. **创建验证XML文件**: 为了添加验证规则,你需要创建一个与Action同名的XML文件,如`ValidateAction-validation.xml`。在这个文件中,你可以定义针对Action类或特定方法的验证规则。对于验证所有方法,文件结构可能是这样的:
```xml
<validators>
<!-- 验证规则 -->
</validators>
```
3. **针对单个方法的验证**: 如果只想对Action的某个特定方法进行验证,可以创建一个带有该方法名称的XML文件,例如`ValidateAction-validateAdd-validation.xml`。配置如下:
```xml
<validators>
<!-- 与特定方法相关的验证规则 -->
</validators>
```
4. **使用通配符配置**: 为了简化配置,可以使用通配符`*`来匹配多个方法。例如,`validate_*`将匹配所有以`validate_`开头的方法:
```xml
<action name="validate_*" class="com.struts2.validator.ValidateAction" method="{1}">
<!-- 对应的验证规则文件 -->
</action>
```
5. **注意事项**:
- 避免使用`input`作为验证方法的名字,因为这可能导致配置冲突。
- 在表单提交时,确保`action`属性指向正确的验证方法,而不是使用通配符。
- 当验证失败并返回`input`页面时,ValueStack中的值可能会丢失。为了避免这个问题,你可以使Action实现`Preparable`接口,并在`prepare()`方法中初始化需要的值。
- 实现`Preparable`接口后,记得在Action配置中添加`<interceptor-ref name="paramsPrepareParamsStack"/>`,这确保了在验证之前先执行参数预处理。
6. **验证规则**: 在验证XML文件中,你可以定义各种验证规则,如必填、长度限制、数字范围等。例如:
```xml
<field name="fieldName">
<field-validator type="requiredstring">
<message>字段是必需的。</message>
</field-validator>
</field>
```
7. **错误消息**: 通过`<message>`标签,你可以自定义验证失败时显示的错误信息。
Struts2的验证框架提供了一种灵活的方式来管理用户输入的验证,确保数据的准确性和一致性。通过适当的配置和验证规则,可以有效地防止无效数据进入系统,增强应用程序的健壮性。
2014-07-02 上传
2009-05-21 上传
2019-04-08 上传
2019-08-02 上传
2019-04-22 上传
2012-07-23 上传
计算机hong
- 粉丝: 1
- 资源: 4
最新资源
- LCD1602源程序 SPCE061A
- 微机原理微机原理微机原理微机原理
- Visual Studio使用技巧手册[涵盖02-05].pdf
- 锁相环的组成和工作原理
- OV6620详细操作说明
- 磁位置传感器的应用.
- Struts涂鸦 PDF格式
- loadrunner8.1指南
- 4*4键盘控制程序(C和汇编)
- Vim用户手册中文版72
- GPRS 中英文对照介绍
- the symbian os architecture sourcebook
- ASP对很长的文章做分页输出(完美版)
- ASP.NET课件············
- Linux必学的60个命令
- MIMO Wireless Communications_From Real-World Propagation to Space-Time Code Design