### Struts 1.2 验证框架示例解析 #### 概述 在Web开发过程中,表单数据的有效性验证至关重要。Struts 1.2 提供了一套完整的验证框架来帮助开发者实现这一功能。本文将通过一个具体的示例详细介绍如何在Struts 1.2 应用程序中配置和使用验证框架。 #### 示例分析 本示例主要介绍了如何在Struts 1.2应用中设置验证规则,并展示了如何通过资源文件、配置文件等来进行配置,以实现对用户输入数据的有效性校验。 #### 应用资源文件(ApplicationResources.properties) **ApplicationResources.properties** 文件主要用于定义错误消息的国际化文本。在这个文件中,我们可以看到定义了一系列错误消息,这些错误消息对应于不同的验证失败情况。例如: - `errors.required={0}\u4e0d\u80fd\u4e3a\u7a7a\uff01`:表示某个字段不能为空。 - `errors.minlength={0}\u4e0d\u80fd\u5c11\u4e8e{1}\u4e2a\u5b57\u7b26`:表示某个字段的长度不能少于指定值。 - `errors.maxlength={0}\u4e0d\u80fd\u591a\u4e8e{1}\u4e2a\u5b57\u7b26`:表示某个字段的长度不能多于指定值。 - `errors.invalid={0}\u7684\u683c\u5f0f\u662f5-10\u4e2a\u5b57\u76ee\u6216\u6570\u5b57`:表示某个字段必须是5到10个字符或数字。 - `errors.date={0}\u4e0d\u662f\u6709\u6548\u7684\u65e5\u671f\u683c\u5f0f`:表示某个字段不是有效的日期格式。 同时,还定义了一些字段的提示信息,如: - `login.username=\u7528\u6237\u540d` - `login.email=\u90ae\u7bb1` - `login.password=\u5bc6\u7801` 这些定义将在验证失败时展示给用户。 #### 配置文件(struts-config.xml) **struts-config.xml** 是Struts框架的核心配置文件之一。在本示例中,可以看到用于启用Struts验证插件的配置: ```xml <plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/> </plug-in> ``` 这里指定了两个验证规则文件的位置:`validator-rules.xml` 和 `validation.xml`。这两个文件将包含具体的验证逻辑。 #### 验证规则文件(validation.xml) **validation.xml** 文件用于定义具体的验证规则。下面是一段示例代码: ```xml <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN" "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd"> <form-validation> <formset> <form name="loginForm"> <!-- 用户名验证 --> <field property="username" depends="required,mask"> <arg0 key="login.username"/> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z0-9]{5,10}$</var-value> </var> </field> <!-- 密码验证 --> <field property="password" depends="required,minlength,maxlength"> <arg0 key="login.password"/> <arg key="${var:minlength}" name="minlength" position="1" resource="false"/> <arg key="${var:maxlength}" name="maxlength" position="1" resource="false"/> <var> <var-name>minlength</var-name> <var-value>3</var-value> </var> <var> <var-name>maxlength</var-name> <var-value>10</var-value> </var> </field> </form> </formset> </form-validation> ``` 这段配置定义了一个名为`loginForm`的表单,其中包含了对用户名(`username`)和密码(`password`)的验证规则: - **用户名(username)**: - 必须填写(`required`)。 - 必须符合正则表达式`^[a-zA-Z0-9]{5,10}$`,即只能包含字母和数字,且长度为5到10个字符。 - **密码(password)**: - 必须填写(`required`)。 - 最小长度为3(`minlength`)。 - 最大长度为10(`maxlength`)。 通过这种方式,开发者可以灵活地定义不同类型的验证规则,以满足特定的应用需求。 #### 总结 本示例通过具体的代码和配置展示了如何在Struts 1.2中实现表单数据验证。它不仅涵盖了错误消息的定义、验证规则的配置,还包括了具体验证逻辑的实现。这对于初学者来说是非常有用的实践指导,有助于理解和掌握Struts 1.2验证框架的基本用法和配置方式。
# Resources for parameter 'com.test.struts.ApplicationResources'
# Project Test
# Struts Validator Error Messages
errors.required={0}\u4e0d\u80fd\u4e3a\u7a7a\uff01
errors.minlength={0} \u4e0d\u80fd\u5c11\u4e8e {1} \u4e2a\u5b57\u7b26
errors.maxlength={0} \u4e0d\u80fd\u591a\u4e8e{1} \u4e2a\u5b57\u7b26
errors.invalid={0}\u7684\u683c\u5f0f\u662f5-10\u4e2a\u5b57\u76ee\u6216\u6570\u5b57
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
errors.date={0} \u4e0d\u662f\u6709\u6548\u7684\u65e5\u671f\u683c\u5f0f
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} \u4e0d\u662f\u6709\u6548\u7684\u90ae\u7bb1\uff01
errors.url={0}\u4e0d\u662f\u5408\u6cd5\u7684\u7f51\u5740
login.username = \u7528\u6237\u540d
login.email = \u90ae\u7bb1
login.password = \u5bc6\u7801
login.url= \u7f51\u5740
login.birthday = \u65e5\u671f
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 适用于 Java 的 Chef 食谱.zip
- Simulink仿真快速入门与实践基础教程
- js-leetcode题解之179-largest-number.js
- js-leetcode题解之174-dungeon-game.js
- Matlab工具箱使用与实践基础教程
- js-leetcode题解之173-binary-search-tree-iterator.js
- js-leetcode题解之172-factorial-trailing-zeroes.js
- js-leetcode题解之171-excel-sheet-column-number.js
- 安卓开发从入门到精通基础教程
- js-leetcode题解之170-two-sum-iii-data-structure-design.js