本人想用struts2的自动校验框架。但没成功。忘大哥大姐姐们帮忙一下。小弟感激不尽::
登录的jsp页面为 welecome.jsp;
        <form action="LogIn.action" name="logIn" >
            <s:text name="lable.userName"/><input type="text" name="teacherNumber"/><br/>
           <s:text name="lable.passWord"/><input type="password" name="password"/><br/>
          
           <input type="submit" value="<s:text name="lable.submit"/>" />
          
            <a href="teacherRegist.jsp"> <s:text name="lable.registlink"/>  </a>
      </form> 
校验文件为LogInAction-logIn-validation.xml<? xml version="1.0" encoding="UTF-8" ?> 
<! DOCTYPE validators PUBLIC 
          "-//OpenSymphony Group//XWork Validator 1.0//EN" 
          "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd" >          
<validators > 
    <field name ="teacherNumber" > 
        <field-validator type ="int" > 
             <param name="min">1</param>
             <param name="max">100</param>
             <message>教师号必须为${min}${max}</message>
        </field-validator > 
        <field-validator type="required">
        
          <message>登录账号不能为空!</message>
        </field-validator>
    </field > 
</validators > struts2.xml为<action name="LogIn" class="LogInAction" method="teacherLogIn">
<result name="success">/workPage.jsp</result>
<result name="input">/checkFail.jsp</result>
</action>
input视图 的jsp页面为:
<action name="LogIn" class="LogInAction" method="teacherLogIn">
<result name="success">/workPage.jsp</result>
<result name="input">/checkFail.jsp</result>
</action>

解决方案 »

  1.   

    校验文件LogInAction-logIn-validation.xml必须和LogInAction-logIn.java放在同一个包下。
    LogInAction-logIn.java是你自己定义的Action类。
      

  2.   

    包名为:com.kysb.action校验类名为:LogInAction 。别名为:LogIn 。是一个都不执行!输入错误的数据它直接到Action了。
      

  3.   

     没起到验证中用啊。也不报错。 teacherNumber是 int型的
      

  4.   

    验证要起作用,命名规则:Action类名-action配置名称-validation.xml
    中间为action配置名称,也就是在struts.xml里配置的name属性,而不是method属性
    <action name="xxxAction" class="XXXAction" method="methodXXX">
    XXXAction-xxxAction-validation.xml
    这样就校验就起作用了
      

  5.   

    把required换成requiredstring试试,如果不行,再试试下面。校验文件有两种命名方法一种是“Action类名-validation.xml”另一种就是“Action类名-struts.xml中action的name-validation.xml”,你用的第二种,换成第一种试试。如下:
    如果校验类名为:LogInAction.java,那么校验文件改为LogInAction-validation.xml试试
    并且把type类型的required换成requiredstring
      

  6.   

    咋会还不行呢,我也不知道了。我用的就可以啊,唯一不同的就是我的先校验requiredstring,后校验的是int。这应该没关系的啊。
      

  7.   

    按照下面的总结检查一遍:
    1.确定在一个包下
    2.Action类名和Action类名-validation.xml的Action类名完全一样。
    3.required换成requiredstring.
    4.确定struts.xml和jsp文件的action的name相同。
    5.关闭Eclipse,重新打开,再运行。
    6.如果上述执行完后,还是不行。我建议就放弃吧,用其他方法代替。
      

  8.   

    <? xml version="1.0" encoding="UTF-8" ?> 
    <! DOCTYPE validators PUBLIC 
              "-//OpenSymphony Group//XWork Validator 1.0//EN" 
              "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd" >          
    <validators > 
        <field name ="teacherNumber" > 
            <field-validator type ="int" > 
                 <param name="min">1</param>
                 <param name="max">100</param>
                 <message>教师号必须为${min}${max}</message>
            </field-validator > 
            <field-validator type="required">
            
              <message>登录账号不能为空!</message>
            </field-validator>
        </field > 
    redlotus_lyn大哥帮 我解决了。你们的意见都是对的。问题是我在靠校验xml文件时。开始的空格哇!太隐蔽了!!