3.validation.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>
<form-validation>
<formset>
<form name="registerForm">
<field property="name" depends="required, maxlength, minlength">
<arg0 key="register.form.name"/>
<arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
<arg1 name="minlength" key="${var:minlength}" resource="false"/>
<var>
<var-name>maxlength</var-name>
<var-value>10</var-value>
</var>
<var>
<var-name>minlength</var-name>
<var-value>4</var-value>
</var>
</field>
<field property="password" depends="required">
<arg0 key="register.form.password"/>
</field>
<field property="email" depends="email">
<arg0 key="register.form.email"/>
</field>
<field property="age" depends="required, integer">
<arg0 key="register.form.age"/>
</field>
</form>
</formset>
</form-validation>

解决方案 »

  1.   

    4.validator-rules.xml这个是struts自带的
    [code=XML]4.validator-rules.xml这个是struts自带的
    <!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">
    <!--
      $Id: validator-rules.xml,v 1.1.2.1 2006/07/01 20:50:46 eugene-proddev Exp $   This file contains the default Struts Validator pluggable validator
       definitions.  It should be placed somewhere under /WEB-INF and
       referenced in the struts-config.xml under the plug-in element
       for the ValidatorPlugIn.      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
            <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
                                                      /WEB-INF/validation.xml"/>
          </plug-in>   These are the default error messages associated with
       each validator defined in this file.  They should be
       added to your projects ApplicationResources.properties
       file or you can associate new ones by modifying the
       pluggable validators msg attributes in this file.   # Struts Validator Error Messages
       errors.required={0} is required.
       errors.minlength={0} can not be less than {1} characters.
       errors.maxlength={0} can not be greater than {1} characters.
       errors.invalid={0} is invalid.   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} is not a date.
       errors.range={0} is not in the range {1} through {2}.
       errors.creditcard={0} is an invalid credit card number.
       errors.email={0} is an invalid e-mail address.   Note: Starting in Struts 1.2.0 the default javascript definitions have
             been consolidated to commons-validator. The default can be overridden
             by supplying a <javascript> element with a CDATA section, just as
             in struts 1.1.--><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="requiredif"
                     classname="org.apache.struts.validator.FieldChecks"
                     method="validateRequiredIf"
                     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"/>code]
      

  2.   

    4.validator-rules.xml这个是struts自带的,太长了,就不贴出来了
    5.ApplicationResources.properties资源文件
    # Resources for parameter 'com.gong.struts.ApplicationResources'
    # Project StrutsTest1# register.jsp
    register.title=Validator使用示例
    register.message=请输入注册信息
    register.form.name=用户名
    register.form.password=密码
    register.form.email=邮箱
    register.form.age=年龄# validator config
    errors.required={0}不能为空
    errors.integer={0}必须是整形数字
    errors.email={0}不是有效的电子邮件地址
    errors.maxlength={0}的长度不能超过{1}个字符
    errors.minlength={0}的长度不能少于{1}个字符6.RegisterAction.java
    package com.gong.struts.action;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;import com.gong.struts.form.RegisterForm;public class RegisterAction extends Action {    /**
         * Method execute
         * @param mapping
         * @param form
         * @param request
         * @param response
         * @return ActionForward
         */
        @Override
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response)
                throws Exception {
            // TODO Auto-generated method stub
            
            RegisterForm registerForm = (RegisterForm)form;
            System.out.println("name=" + registerForm.getName());
            System.out.println("password=" + registerForm.getPassword());
            System.out.println("email=" + registerForm.getEmail());
            System.out.println("age=" + registerForm.getAge());
            
            return mapping.findForward("succ");
        }    
    }
    7.RegisterForm.java
    package com.gong.struts.form;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;public class RegisterForm extends ActionForm {    /**
         * 
         */
        private static final long serialVersionUID = 1L;    private String name;
        
        private String password;
        
        private String email;
        
        private String age;    @Override
        public void reset(ActionMapping mapping, HttpServletRequest request) {
            // TODO Auto-generated method stub
            super.reset(mapping, request);
        }    public String getName() {
            return name;
        }    public void setName(String name) {
            this.name = name;
        }    public String getPassword() {
            return password;
        }    public void setPassword(String password) {
            this.password = password;
        }    public String getEmail() {
            return email;
        }    public void setEmail(String email) {
            this.email = email;
        }    public String getAge() {
            return age;
        }    public void setAge(String age) {
            this.age = age;
        }
    }
      

  3.   

    com.gong.struts.form.RegisterForm
    这个form不对,不能是普通的form
    应该是validateform 或validateActionfrom
    并且不能在其中有validate方法。!
      

  4.   

    改成
    public class RegisterForm extends ValidatorForm 就可以了,继承错了,不应该继承ActionForm类。多谢!