Struts2输入验证配置详解
需积分: 10 65 浏览量
更新于2024-07-26
收藏 52KB DOCX 举报
"Struts2输入校验总结"
Struts2是一个流行的企业级Java Web框架,它提供了强大的输入校验功能,以确保用户提交的数据符合应用的业务规则,从而提高数据的准确性和系统的安全性。在Struts2中,输入校验是通过Struts2Validator组件来实现的。
1. **Struts2Validator**:
Struts2Validator是Struts2框架内建的验证框架,它基于Apache Commons BeanUtils和Validator框架,提供了多种内置的验证规则,如非空、长度、数字范围等。开发者可以通过定义XML验证规则文件或使用注解方式对用户输入进行验证。
2. **配置Action的input返回页面**:
当验证失败时,Struts2会将用户重定向到`input`结果页面,因此在Action配置中,必须指定`input`结果的返回页面,以便在验证不通过时展示错误信息给用户。
3. **创建验证XML文件**:
验证规则通常存储在与Action同包下的XML文件中。对于验证Action中所有方法,XML文件命名格式为`Action类名-validation.xml`;若只针对特定方法,文件名应为`Action类名-方法配置名称-validation.xml`。例如,对于名为`ValidateAction`的Action,如果需要验证`add`方法,应创建`ValidateAction-validate_add-validation.xml`文件。
4. **注意事项**:
- 避免在Action中定义名为`input`的方法,因为这可能导致系统解析冲突。
- 在表单中,`action`属性应指定为完整的方法名称,例如`<s:form action="validate_add">`,而不是使用通配符`validate_`。
- 如果验证失败返回`input`页面时,ValueStack中的数据可能会丢失。为了保留这些值,可以实现`Preparable`接口并在`prepare()`方法中初始化所需数据。
- 使用`Preparable`接口的Action,需要在配置文件中包含`<interceptor-ref name="paramsPrepareParamsStack"`,以确保在拦截器链中先执行参数预处理。
5. **验证规则的定义**:
在XML验证文件中,可以定义字段、字段级的验证规则以及全局的验证规则。例如:
```xml
<field name="username">
<field-validator type="requiredstring">
<message>用户名不能为空</message>
</field-validator>
</field>
```
上述代码定义了一个`username`字段,要求其不能为空。
6. **自定义验证规则**:
除了内置的验证器之外,Struts2还允许开发人员自定义验证器,以满足特定的业务需求。
7. **异常处理和错误显示**:
当验证失败时,Struts2会将错误信息存入ValueStack,可以在JSP页面上通过`<s:fielderror>`标签显示这些错误信息。
Struts2的输入校验机制是通过XML配置或注解方式,配合Struts2Validator组件实现的。正确配置和使用输入校验,可以有效防止无效或恶意数据进入系统,保护应用程序的稳定性和安全性。
616 浏览量
109 浏览量
2019-04-16 上传
2010-09-18 上传
2011-11-07 上传
173 浏览量
140 浏览量
yiranlihao
- 粉丝: 1
- 资源: 17
最新资源
- win_udp:Windows网络udp框架服务器和侦听器
- 如何规划团队训练课程PPT
- torch_cluster-1.5.5-cp36-cp36m-linux_x86_64whl.zip
- 取Excel表格有数据单元格的起讫行列.rar
- zencharts:将 High Charts 库的强大功能与 Zendesk Developer API 相结合的小型应用程序
- wild-rydes:野生莱德
- Redosnap Launcher-crx插件
- CNN_for_brain_ventricles_segmentation:“个人3D脑图集”项目。 利用全卷积神经网络对大脑的CT数据进行分割
- 批量修改文件名.zip
- 取Excel表格有数据单元格的起讫行、列.rar
- html2text:用 Go 编写的 html 到文本转换器
- torch_scatter-2.0.4-cp37-cp37m-win_amd64whl.zip
- Email Notifier-crx插件
- yun-text:“云杯”景区声誉评价得分预测中第三个解决方案的DL部分
- milestoneproject2-memorygame:一种记忆游戏,要求用户匹配隐藏在牌组中的成对纸牌
- Android Binder通信案例