关于struts的客户端验证:
struts-config.xml:
    <form-bean name="registrationForm" type="validator.RegistrationForm" />    <action path="/registration-submit" 
            type="validator.RegistrationAction" 
            name="registrationForm" 
            scope="request" 
            validate="true" 
            input="input">
      <set-property property="cancellable" 
                    value="true"/>
      <forward name="input" path="/registration.do" />
      <forward name="success" path="/index.jsp" />  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validator/validation.xml" />
这个validator.RegistrationForm是有的.
Registration.jsp:
开始
<html:form action="registration-submit" onsubmit="return validateRegistrationForm(this);">
最后
<html:javascript formName="registrationForm" staticJavascript="true"/>
请专家们帮忙看一下..急啊...

解决方案 »

  1.   

    忘了把错误放上去javax.servlet.ServletException: No form found under 'registrationForm' in locale 'ja'
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:533)
    at org.apache.jsp.jsRegistration$jsp._jspService(jsRegistration$jsp.java:378)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:683)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:431)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:355)
    at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
    at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(RequestProcessor.java:1023)
    at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:572)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:221)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
      

  2.   

    <form-bean name="registrationForm" type="validator.RegistrationForm" />
    中的type="validator.RegistrationForm"你确定你没写错吗?
      

  3.   

    好像你使用的是日文? 是那个配置要使用类似 XXX_ja.YYY 这样的才行
      

  4.   

    你这样验证也不是要走ACTION,也要刷新页面多慢呀!自已写个验证
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property
            property="pathnames"
            value="/WEB-INF/config/validator-rules.xml,
            /WEB-INF/config/validator-son-rules.xml"
      </plug-in>
    validator-son-rules.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>
        <global>
           <!--验证日期的合法性,如2月没有30、31日,29日只有在润年才有等-->
            <validator name="date" 
                classname="org.apache.struts.util.StrutsValidator" 
                method="validateDate" 
                methodParams="java.lang.Object,
                           org.apache.commons.validator.ValidatorAction,
                           org.apache.commons.validator.Field,
                           org.apache.struts.action.ActionErrors,
                           javax.servlet.http.HttpServletRequest" 
                msg="errors.date" jsFunctionName="DateValidations">
                <javascript><![CDATA[
       function validateDate(form) {
           var bValid = true;
           var focusField = null;
           var i = 0;
           var formN = form.name; 
           oDate = eval('new ' + formN + '_DateValidations');
           for (x in oDate) {
               var field = form[oDate[x][0]];
               var value = field.value;
               if ((field.type == 'hidden' ||
                    field.type == 'text' ||
                    field.type == 'textarea') &&
                   (value.length>0)){  
                   var date_array = value.split("-");
                   if(!(isValidDate(date_array[2],date_array[1],date_array[0]))){
                           if (i == 0) {
                               focusField = field;
                           }
                                               
                         alert(oDate[x][1]);
                         focusField.focus();
                         focusField.select();
                         bValid =  false;
                         return bValid;
                     }
              }
           }
          return bValid;
        }   
        function isValidDate(day, month, year) {
        if (month < 1 || month > 12) {
                return false;
            }
            if (day < 1 || day > 31) {
                return false;
            }
            if ((month == 4 || month == 6 || month == 9 || month == 11) &&
                (day == 31)) {
                return false;
            }
            if (month == 2) {
                var leap = (year % 4 == 0 &&
                   (year % 100 != 0 || year % 400 == 0));
                if (day>29 || (day == 29 && !leap)) {
                    return false;
                }
            }
            return true;
        }]]> </javascript>
            </validator>
        </global>
    </form-validation>
      

  5.   

    再配置一个自己表单对应的validaton.xml
    <?xml version="1.0" encoding="gb2312" ?>
    <!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>
     <global>        
            <constant>
                <constant-name>date</constant-name>
                <constant-value>^\d{4}-\d{2}-\d{2}$</constant-value>
            </constant>
            <constant>
                <constant-name>date1</constant-name>
                <constant-value>^\d{4}-\d{2}$</constant-value>
            </constant>
     
    <constant>
                <constant-name>year</constant-name>
                <constant-value>^\d{4}$</constant-value>
            </constant>
        </global>
    <formset>
     <form name="你的FORM名,第一个字母要小写">
                <!--业务宗号-->
                <field property="ywzh" depends="integer,sbc">
                    <msg name="integer" key="errors.long" bundle="title"/>
                    <msg name="sbc" key="error.sbc" bundle="title"/>
                    <arg0 key="vlxftbrowseForm.ywzh"/>
                    <arg1 name="sbc" key="${var:sbc_and_dbc_length}" resource="false"/>
                    <var>
                        <var-name>sbc_and_dbc_length</var-name>
                        <var-value>10</var-value>
                    </var>
                </field>
                <!--项目名称-->            
                <field property="gcxmmc" depends="sbc">
                    <msg name="sbc" key="errors.sbc" bundle="title"/>
                    <arg0 key="vlxftbrowseForm.bcxmmc"/>
                    <arg1 name="sbc" key="${var:sbc_and_dbc_length}" resource="false"/>
                    <var>
                        <var-name>sbc_and_dbc_length</var-name>
                        <var-value>50</var-value>
                    </var>
                </field>
                      
              </form>
        </formset> </form-validation>
      

  6.   

    我想要做的是客户端验证
    我的是日语操作系统
    我查了一下。我的配置好像没有什么问题。。form的名字也没有错
    就是不知道错在那里。。哎。
      

  7.   

    是那个配置要使用类似 XXX_ja.YYY 这样的才行能不能说明白点啊不太明白