网上看了好长时间了,除了 帮忙检查有没有写错,没有更多的说明
我检查的很仔细了,
请教大家 是否还有其他原因导致不执行??干脆我也贴一些关键的地方大家看看吧

解决方案 »

  1.   

    CorpUserLoginAction.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE validators PUBLIC 
       "-//OpenSymphony Group//XWork Validator 1.0.2//EN" 
       "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
     
    <validators>
    <field name="corpId">
       <!-- 验证字符串不能为空 -->
       <field-validator type="requiredstring">
        <!-- 去空格 -->
        <param name="trim">true</param>
        <!-- 错误提示信息 -->
        <message>用户名不能为空</message>
       </field-validator>
      
       <!-- 验证字符串长度 -->
       <field-validator type="stringlength">
        <param name="minLength">2</param>
        <param name="maxLength">20</param>
        <message>用户名长度应在2到18个字符间</message>
       </field-validator>
    </field><field name="password">
       <field-validator type="requiredstring">
        <param name="trim">true</param>
        <message>密码不能为空</message>
       </field-validator>
      
       <field-validator type="stringlength">
        <param name="minLength">6</param>
        <param name="maxLength">18</param>
        <message>密码长度应在6到18个字符之间</message>
       </field-validator>
    </field>
    </validators>
      

  2.   

    struts.xml  节选一段
    <struts>
    <include file="mrbt-default.xml" /> <package name="user" extends="mrbt-default" namespace="/user">
    <action name="linkimage">
    <result>/jsp/image.jsp</result>
    </action>
    <action name="login" class="corpUserLogin">
      <result name="success" type="dispatcher">/jsp/OperationRes.jsp</result>
      <result name="error" type="dispatcher">/jsp/message/error.jsp</result>
      <result name="input" type="dispatcher">/jsp/Login.jsp</result>   
     </action>
      

  3.   

    Login.jsp  也节选一段
    <s:form action="login" namespace="/user" name="LoginForm" method="post"  onsubmit="return form1Submit()" theme="simple">
      <center>
        <table width="250" border="0" cellpadding="0" cellspacing="0" bgcolor="#62A5FF">
          <tr>
            <td><img src="<%=baseUrl %>/images/admin_logo.gif" /></td>
        </tr>
      </table>
    </center> 
      <table width="250" border="0" align="center" cellpadding="3" cellspacing="1" bgcolor="#A4D1E8">
        <tr id="tabletitle"> 
          <td colspan="2" bgcolor="#C4E8FF">集团管理员登录</td>
      </tr>
      <tr> 
          <td width="30%" bgcolor="#ECF8FF">集&nbsp;团&nbsp;编&nbsp;号</td>
          <td bgcolor="#FBFEFF" width="70%"> 
            <s:textfield name="corpId" value=""/><s:fielderror><s:param>corpId</s:param></s:fielderror>
          </td>
      </tr>
      <tr> 
          <td bgcolor="#ECF8FF" width="30%">密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码</td>
          <td bgcolor="#FBFEFF" width="70%"> 
            <s:password name="password" value=""/><s:fielderror><s:param>password</s:param></s:fielderror>
          </td>
      </tr>
      <tr> 
        <td bgcolor="#ECF8FF">显示附加码</td>
        <td bgcolor="#FBFEFF">
         <script>document.write("<img border=0 src=<%=baseUrl %>/user/linkimage.action?rand="+Math.random()*10000+">");</script>        
        </td>
      </tr>
      <tr> 
        <td bgcolor="#ECF8FF">输入附加码</td>
        <td bgcolor="#FBFEFF">
         <s:textfield name="appendCode" value=""/>
          </td>
      </tr>
      <tr> 
        <td colspan="2" align="center" valign="top" bgcolor="#ECF8FF">
         <s:submit value=" 登 录 "/>
         <s:reset value=" 重 写 "/></td>
      </tr>
    </table>
    </s:form>
      

  4.   

    CorpUserLoginAction.xml 这个配置文件的名字不和规范。。
    。一:actionName-xx-validation.xml其中actionName为类名,xx为struts配置文件中所配置的action 名字
    二:还有就是这验证配置文件和类放在统一包下。。你试验下看看,我觉的是这样的。如果没有记错的话。。
      

  5.   

    还有就是struts配置文件中少拦截器 好像是叫position <interceptor-ref name="position"/>,你查下 问问身边同事,朋友。。 
    还有:每个action 都要有<result name="input" type="dispatcher">/jsp/xx.jsp</result>      最好把input 放在首个。。不知道位置是否影响到验证,,不是很确定。。自己可以试验下。。
    <validators>
    <field name="corpId">
    </validators> 这个name 一定要保持java代码中一致。。
      

  6.   

    没有执行CorpUserLoginAction-validation.xmlCorpUserLoginAction-login-validation.xml都试过了
      

  7.   

    那就试验下 CorpUserLoginAction-validation.xml
      

  8.   

    我也没有办法了要是能看到你框架配置 就好办了,,这个好像就是你的拦截器没有正确配置或者是 你struts中 extends 配置不对
      

  9.   

    struts2标签校验错误会显示错误信息的, 边上还加filererror多余了!你的action需要实现Validateable和ValidatorAware接口
    是否继承了ActionSupport?
      

  10.   

    你的建议
    除了拦截器 之外我都试过了
    正在查找到底是那个拦截器,但是没有类死position的拼写啊
    我把struts-default.xml 中有验证拦截器的包都加进来试试
      

  11.   

    对了 jsp中还有个显示的<s:actionerror theme="simple" /><s:fielderror theme="simple" />和你写的
    <s:fielderror > <s:param>corpId</s:param></s:fielderror>有何区别 你看下。。好好研究下 分析问题根本,缩写问题出现范围,就定位问题了吗。。首先分析必要条件,在次之呀。。
    希望你成功。。努力。。好运。。我也得忙了
      

  12.   

    解释一下:边上还加filererror  是因为我怀疑我的逻辑错误跳过了验证,所以加了这个标签,然           后从 action  addfielderror(...)  在页面能显示。这才坚定我的信心求教
    确实继承了ActionSupport 但是实现Validateable和ValidatorAware接口  没明白,待会一试
      

  13.   

    ..ActionSupport已经帮你实现了.. 不用自己实验
      

  14.   

    这个命名主要看你的form是在哪个方法里面的  如果是默认的execute()就要第一个命名,如果你用的是login方法那就用第二个命名,还有就是放到你的action的包里面,和拦截器没关系
      

  15.   


    昨晚 在家我试了一下,,没有 实现这些个 接口 就能验证啊
    今天在公司,这个运行环境确实让我很难受  svn+maven,连部署测试都难受
    好了,我还是试试吧
    但是 昨晚我确实 没实现接口 也成功了  呵呵
      

  16.   

    struts2 不要实现那个接口的 直接就可以用的就是你可能漏了哪里了。。或是什么字段啦 什么的没有匹配。
      

  17.   

    ..刚都说了ActionSupport帮你实现了已经.! 我说要实现接口那是说在没有继承ActionSupport的前提
      

  18.   

    - -! 不用实现是因为ActionSupport帮你做了..! 你不继承它,也不实现接口, 神仙都不会帮你校验的.!
      

  19.   

    我太丢人了
    我还真跑去 准备实现接口 后来发现ActionSupport 实现了上面   izard999  仁兄提到了,我没好好听,惭愧
    继续求教。。
      

  20.   

    配置文件命名:Action类名-action名-validation.xml
    action名是struts中配置的