struts validator框架

登录程序举例 环境:myeclipse+tomcat5.0 代码 login.jsp <html>     <head>         <title>JSP for LoginForm form</title>     </head>     <body>         <html:form action="/login" method="POST">             <bean:message key="username"/> : <html:text property="username"/><html:errors property="username"/><br/>             <bean:message key="password"/> : <html:password property="password"/><html:errors property="password"/><br/>             <bean:message key="age"/> : <html:text property="age"/><html:errors property="age"/><br/>             <bean:message key="email"/> : <html:text property="email"/><html:errors property="email"/><br/>             <html:submit/><html:cancel/>         </html:form>     </body> </html> loginForm private String password;     /** age property */     private String age;     /** username property */     private String username;     /** email property */     private String email; getter和setter方法省略 loginAction方法省略(实现验证和它无关) validator.xml <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE form-validation PUBLIC           "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"           "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">  <form-validation>    <formset>       <form name="loginForm">          <field property="username" depends="required">            <arg0 key="username"/>          </field>          <field property="password" depends="required,maxlength,minlength">              <arg0 key="password"/>              <arg1 name="maxlength" key="${var:maxlength}" resource="false"/>              <arg1 name="minlength" key="${var:minlength}" resource="false"/>              <var>                  <var-name>maxlength</var-name>                  <var-value>12</var-value>              </var>              <var>                  <var-name>minlength</var-name>                  <var-value>6</var-value>              </var>          </field>          <field property="age" depends="intRange">              <arg0 key="age"/>              <arg1 key="${var:min}" resource="false"/>              <arg2 key="${var:max}" resource="false"/>              <var>                  <var-name>min</var-name>                  <var-value>18</var-value>              </var>              <var>                  <var-name>max</var-name>                  <var-value>30</var-value>              </var>          </field>          <field property="email" depends="email">              <arg0 key="email"/>          </field>       </form>     </formset> </form-validation>       validator-rules.xml <form-validation>    <global>       <validator name="required"             classname="org.apache.struts.validator.FieldChecks"                method="validateRequired"          methodParams="java.lang.Object,                        org.apache.commons.validator.ValidatorAction,                        org.apache.commons.validator.Field,                        org.apache.struts.action.ActionMessages,                        org.apache.commons.validator.Validator,                        javax.servlet.http.HttpServletRequest"                   msg="errors.required"/>       <validator name="minlength"             classname="org.apache.struts.validator.FieldChecks"                method="validateMinLength"          methodParams="java.lang.Object,                        org.apache.commons.validator.ValidatorAction,                        org.apache.commons.validator.Field,                        org.apache.struts.action.ActionMessages,                        org.apache.commons.validator.Validator,                        javax.servlet.http.HttpServletRequest"               depends=""                   msg="errors.minlength"            jsFunction="org.apache.commons.validator.javascript.validateMinLength"/>       <validator name="maxlength"             classname="org.apache.struts.validator.FieldChecks"                method="validateMaxLength"          methodParams="java.lang.Object,                        org.apache.commons.validator.ValidatorAction,                        org.apache.commons.validator.Field,                        org.apache.struts.action.ActionMessages,                        org.apache.commons.validator.Validator,                        javax.servlet.http.HttpServletRequest"               depends=""                   msg="errors.maxlength"            jsFunction="org.apache.commons.validator.javascript.validateMaxLength"/>      <validator name="intRange"             classname="org.apache.struts.validator.FieldChecks"                method="validateIntRange"          methodParams="java.lang.Object,                        org.apache.commons.validator.ValidatorAction,                        org.apache.commons.validator.Field,                        org.apache.struts.action.ActionMessages,                        org.apache.commons.validator.Validator,                        javax.servlet.http.HttpServletRequest"               depends="integer"                   msg="errors.range"/> <validator name="email"             classname="org.apache.struts.validator.FieldChecks"                method="validateEmail"          methodParams="java.lang.Object,                        org.apache.commons.validator.ValidatorAction,                        org.apache.commons.validator.Field,                        org.apache.struts.action.ActionMessages,                        org.apache.commons.validator.Validator,                        javax.servlet.http.HttpServletRequest"               depends=""                   msg="errors.email"/>  </global> </form-validation> ApplicationResources.properties已经利用native2ascii编码过 编码为utf-8 # Resources for parameter 'com.struts_zh.struts.ApplicationResources' # Project struts_ZH username=/u59d3/u540d password=/u5bc6/u7801 age=/u5e74/u9f84 email=/u7535/u5b50/u90ae/u7bb1 #/u62a5/u9519/u63d0/u793a/u4fe1/u606f errors.email={0} /u4e0d/u662f/u6b63/u786e/u7684email/u5730/u5740 errors.maxlength={0} /u5fc5/u987b/u5c0f/u4e8e12/u4f4d/u7684/u5b57/u7b26 errors.minlength={0} /u5fc5/u987b/u5927/u4e8e6/u4f4d/u7684/u5b57/u7b26 errors.range={0} /u5fc5/u987b/u5927/u4e8e{1}/u5c0f/u4e8e{2} errors.required={0}/u5fc5/u987b/u8f93/u5165 struts-config.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config>   <data-sources />   <form-beans >     <form-bean name="loginForm" type="com.struts_zh.struts.form.LoginForm" />   </form-beans>   <global-exceptions />   <global-forwards />   <action-mappings >     <action       attribute="loginForm"       input="/login.jsp"       name="loginForm"       path="/login"       scope="request"       validate="true"       type="com.struts_zh.struts.action.LoginAction" />   </action-mappings>   <message-resources parameter="com.struts_zh.struts.ApplicationResources" />      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">         <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,                                                   /WEB-INF/validation.xml"/>       </plug-in> </struts-config> 搞定! 下面介绍一下validation.xml配置文件的标签: <form-validation></form-validation>是总框架 <formset></formset>是对Form里的数据进行配置 <form name="ActionForm对应的名称"></form>对一个ActionForm里的数据进行验证配置 <field property="ActionForm里的属性名" depends="验证规则,可以是Validation-rules里定义好的也可以是自定义的验证规则">这里配置一个属性的验证内容 <arg0 name="对应的验证规则名称" key="可以直接填入数值,也可填入变量表达式:${var:变量名}" resource="true/false"(代表是否从资源文件中读取信息,否则Key的值以参数的形式返回)> <var></var>定义一个变量的标签体,可以在里面具体设置变量的名称以及数值 <var-name>对应Key里定义的变量名称</var-name> <var-value>值</var-value> <msg name="对应的验证规则名称" key="资源文件中定义的变量名称">这里定义了信息变量后,会默认定义的信息变量。 在验证规则中大部分可以使用已经预定义好的规则,它们在validator-rules.xml里,当然我们自己也可以定义规则。

其实,这个文件名可以是任意的,可以起成别的名字,比如:validators.xml,不过,也要相应修改struts-config.xml文 件中的加入validator框架PlugIn中的value属性。这个value属性用来指定validator-rules文件和具体的验证文件。

1)根元素: validators.xml文件的“根元素(Root)”是form-validation, 意味着整个文件的内容包含在“<form-validation>”和“</form-validation>”之间,

2)元素global: 这个东西包含constant子元素,用来定义一个全局的“验证限制”, 以便在这个文件的其他地方使用这些验证规则。 field元素定义了对特定属性的验证
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值