Validator框架要配置validator-rules.xml,配置好了么?
还要在对应得Action配置文件中加入validate="true"
还需要有input属性
最后,你得form输入真得有错么?
都不能解决就把代码贴出来吧

解决方案 »

  1.   

    user.jsp:
    <%@ page contentType="text/html; charset=UTF-8"%>
    <%@ page language="java"%>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> 
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
     
    <html> 
    <head>
    <title>JSP for CheckForm form</title>
    </head>
    <body>
    <html:form action="SavaAction.do">
    <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>
      

  2.   

    struts-config.xml:<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><struts-config>
      <data-sources />
      <form-beans >
        <form-bean name="CheckForm" type="struts.sample.cap5.sample1.form.CheckForm" />
        <form-bean name="CheckForm2" type="org.apache.struts.validator.DynaValidatorActionForm">
          <form-property name="userName" type="java.lang.String" />
          <form-property name="age" type="int" />
          <form-property name="email" type="java.lang.String" />
          <form-property name="passWord" type="java.lang.String" />
        </form-bean>  </form-beans>  <global-exceptions />
      <global-forwards />
      <action-mappings >
        <action
          attribute="CheckForm"
          input="/ee.jsp"
          name="CheckForm"
          path="/SavaAction"
          scope="request"
          type="struts.sample.cap5.sample1.action.SaveAction"
          validate="true">
          <forward name="success" path="/user.jsp" />
        </action>
          </action-mappings>  <message-resources parameter="resources.application" />
      <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:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN" "validator_1_0.dtd" >
    <form-validation>
    <global>
    <constant>
    <constant-name>numericchar</constant-name>
    <constant-value>^\w+$</constant-value>
    </constant>
    </global> <formset>
    <form name="CheckForm">
    <field property="userName" depends="required,mask">
    <arg0 key="userName" />
    <var>
    <var-name>mask</var-name>
    <var-value>${numericchar}</var-value>
    </var>
    </field>

    <!-- <field property="passWord" depends="minlength,maxlength,required,mask">-->
    <field property="passWord" depends="required,mask,minmaxlength">
    <arg0 key="passWord" ></arg0>
    <arg1 key="6"  resource="false"></arg1>
    <arg2 key="12" resource="false"></arg2>
    <var>
    <var-name>mask</var-name>
    <var-value>${numericchar}</var-value>
    </var>
    <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="range">
    <arg0 key="age" />
    <arg1 key="18" resource="false" />
    <arg2 key="30" 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"></arg0>
    </field>
    </form>
    </formset>
    </form-validation>
      

  3.   

    package struts.sample.cap5.sample1.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 struts.sample.cap5.sample1.form.CheckForm;public class SaveAction extends Action { public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response) {
    CheckForm CheckForm = (CheckForm) form;
    // TODO Auto-generated method stub
    return mapping.findForward("success");
    }}
    //Created by MyEclipse Struts
    // XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.0/xslt/JavaClass.xslpackage struts.sample.cap5.sample1.form;import org.apache.struts.validator.ValidatorForm;/**
     * 继承于ValidatorForm
     * 不应该覆盖validate方法
     */
    public class CheckForm extends ValidatorForm {
    private String userName;
    private int age;
    private String email;
    private String passWord; /**
     * Returns the userName.
     * 
     * @return String
     */
    public String getUserName() {
    return userName;
    } /**
     * Set the userName.
     * 
     * @param userName
     *            The userName to set
     */
    public void setUserName(String userName) {
    this.userName = userName;
    } /**
     * Returns the age.
     * 
     * @return int
     */
    public int getAge() {
    return age;
    } /**
     * Set the age.
     * 
     * @param age
     *            The age to set
     */
    public void setAge(int age) {
    this.age = age;
    } /**
     * Returns the email.
     * 
     * @return String
     */
    public String getEmail() {
    return email;
    } /**
     * Set the email.
     * 
     * @param email
     *            The email to set
     */
    public void setEmail(String email) {
    this.email = email;
    } /**
     * Returns the passWord.
     * 
     * @return String
     */
    public String getPassWord() {
    return passWord;
    } /**
     * Set the passWord.
     * 
     * @param passWord
     *            The passWord to set
     */
    public void setPassWord(String passWord) {
    this.passWord = passWord;
    }}
    #Created by JInto - www.guh-software.de
    #Thu Mar 30 00:45:48 CST 2006
    age=\u5E74\u9F84
    email=\u7535\u5B50\u90AE\u7BB1
    errors.email={0}\u4E0D\u662F\u6B63\u786E\u7684email\u5730\u5740
    errors.invalid={0}\u5305\u542B\u4E0D\u5408\u6CD5\u7684\u5B57\u7B26\u4E32
    errors.maxlength={0}\u5FC5\u987B\u5C0F\u4E8E12\u4F4D\u7684\u5B57\u7B26
    errors.minlength={0}\u5FC5\u987B\u5927\u4E8E6\u4F4D\u7684\u5B57\u7B26
    errors.minmaxlength={0}\u7684\u5B57\u7B26\u6570\u5FC5\u987B\u5927\u4E8E{1}\u5C0F\u4E8E{2}
    errors.range={0}\u5FC5\u987B\u5927\u4E8E{1}\u5C0F\u4E8E{2}
    errors.required={0}\u5FC5\u987B\u8F93\u5165
    passWord=\u5BC6\u7801
    userName=\u59D3\u540D
      

  4.   

    是你的password设置了minlength验证
    我刚发现这个问题。
    还不知道如何解决。
      

  5.   

    添加validator框架主要注意以下几个步骤:
      一、检查是否有validator-rules.xml(这个直接拷贝就是,基本上不需要更改)、validation.xml(自己配置form需要验证的字段)两个文件,并将两个文件放到WEB-INF下面
      二、在添加form时,Form Impl 选择的类型是Dynamic FormBean, Dynamic Type选择的是org.apache.struts.validator.DynaValidatorForm,如果你选择的是org.apache.struts.action.DynaActionForm则不能验证。(这点最重要,需要检查清楚)
      三、在validation.xml文件配置验证选项.看了你的这个配置
    <form-bean name="CheckForm" type="struts.sample.cap5.sample1.form.CheckForm" />
    你这个地方的formbean type错了,还有,如果你的这个form没有一个字段,这也是错误的,你后面验证这个form的字段,字段都没有,怎么验证,搞不懂你。。在好好检查一下。
    <form name="CheckForm">
    <field property="userName" depends="required,mask">
    <arg0 key="userName" />
    <var>
    <var-name>mask</var-name>
    <var-value>${numericchar}</var-value>
    </var>
    </field>
      

  6.   

    其他我没看哈,不过你想使用这个框架如果是后台验证的话就得加validate="true"
    但是你如果是想进行页面间的验证的话,页面就少了一句话哈...得加上,找个例子看看,这个基本都是死的
      

  7.   

    动态验证  在jsp页
    要添加<html:javascript formName="bean的name例 loginForm" />form中 <html:form action="/login" onsubmit="return validateLoginForm(this)">
      

  8.   

    CheckForm 中重写validate()方法
    public ActionErrors validate(ActionMapping mapping HttpServletRequest request)
    {
        return super(mapping,request);
    }
      

  9.   

    struts-config.xml中:input="/ee.jsp"改成input="/user.jsp"