Struts2内置校验框架实战教程

需积分: 4 3 下载量 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配置或者注解的方式,可以灵活地定制验证规则,适应各种复杂的业务场景。