Struts2内置校验框架实战教程
需积分: 4 62 浏览量
更新于2024-09-09
收藏 306KB DOC 举报
"Struts2 校验框架学习笔记"
Struts2 校验框架是其核心功能之一,它提供了一种高效且灵活的方式来验证用户输入数据的正确性,确保应用程序的稳定性和安全性。与Struts1相比,Struts2的校验框架不再作为一个独立的插件,而是直接内置于框架之中,简化了配置过程,增强了功能。
在Struts2中,校验主要分为两种方式:基于XML的配置和基于注解的校验。在这个例子中,我们将关注基于XML的配置方式。
1. **XML配置校验**:
在`struts.xml`配置文件中,你可以定义Action类及其对应的验证规则。例如,对于一个用户注册的Action,你可以在`struts.xml`中创建一个Action元素,并在其中指定一个或多个验证配置文件。这些配置文件通常以`.validate.xml`为扩展名,包含具体的字段验证规则。如:
```xml
<action name="register" class="com.example.RegisterAction">
<interceptor-ref name="defaultStack"/>
<validation>
<validate file="register-validate.xml"/>
</validation>
<result name="success">/success.jsp</result>
<result name="input">/register.jsp</result>
</action>
```
在`register-validate.xml`中,可以定义如下的验证规则:
```xml
<validators>
<field name="username">
<field-validator type="requiredstring">
<message>用户名不能为空!</message>
</field-validator>
<field-validator type="length">
<param name="min">6</param>
<param name="max">10</param>
<message>用户名长度必须在6-10之间!</message>
</field-validator>
</field>
<!-- 类似地定义其他字段的验证规则 -->
</validators>
```
2. **校验逻辑执行**:
当用户提交表单时,Struts2会根据配置的验证规则对输入数据进行检查。如果校验失败,Struts2将不会调用Action的业务方法,而是返回到`input`结果页面,显示错误消息。在JSP页面中,可以通过`fieldErrors`标签显示这些错误信息,如:
```jsp
<s:fielderror field="username"/>
<s:fielderror field="password"/>
<!-- 其他字段的错误信息展示 -->
```
3. **自定义校验器**:
如果内置的校验器无法满足需求,你可以创建自定义校验器。这需要编写一个实现了`Validator`接口的Java类,并在配置文件中指定使用这个自定义校验器。
4. **字段级和表单级校验**:
Struts2支持字段级和表单级校验。字段级校验针对每个单独的输入字段,而表单级校验则是在所有字段验证通过后,对整个表单进行额外的验证,例如检查两个密码是否一致。
5. **国际化支持**:
验证错误消息可以国际化,通过在资源包(如`ValidationMessages.properties`)中定义消息键,然后在验证规则中引用这些键。
6. **整合其他验证库**:
Struts2还可以与Hibernate Validator、Apache Commons BeanUtils等第三方验证库集成,以利用它们提供的丰富验证功能。
Struts2的校验框架提供了一套完整的解决方案,使得开发者能够轻松地处理用户输入验证,避免了因非法数据导致的程序异常,提高了用户体验。通过XML配置或者注解的方式,可以灵活地定制验证规则,适应各种复杂的业务场景。
113 浏览量
105 浏览量
177 浏览量
2019-03-20 上传
2019-05-31 上传
2012-09-07 上传
2015-06-11 上传
2010-07-23 上传
175 浏览量
zhongzaosheng123
- 粉丝: 0
- 资源: 2
最新资源
- 第3章 ACM算法动态规划1
- 第2章 递归与分治策略
- AES标准(英文版)
- The c programming laugage(K&R)
- UH7843 datasheet
- businessobjects使用手册
- SQLServer2005基础教程
- vs.net中开发brew方法
- 三菱全系列PLC编程手册
- C++ Builder 6 入门教程
- 2009年软件设计师考试大纲软考
- C++语言程序设计第三版答案
- Oracle Form个性化手册
- C++Builder6编程实例精解
- windowsXIP系统下的常用命令
- windows nt/2000 native api reference(Gary Nebbett)