一个提交的表单  <%@ taglib prefix="s" uri="/struts-tags" %>
  <s:form action="/memberRegisterAction.jspx" method="post">
        <s:textfield name="username" label="用户名(邮箱)"></s:textfield>
        <s:textfield name="password" label="密码"></s:textfield>
        <s:textfield name="repassword" label="密码确定"></s:textfield>
        <s:submit value=" 确定 "></s:submit>
   </s:form>对应memberRegisterAction的MemberRegisterAction-validation.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="username">
<field-validator type="email">
<message>用户名为用户邮箱,请按填入正确邮箱地址!</message>
</field-validator>
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用户名(邮箱)不能为空,请注意填写!</message>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message>密码不能为空,请注意填写!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">16</param>
<message>密码长度必须在${minLength}至${maxLength}之间</message>
</field-validator>
</field>
<field name="repassword">
<field-validator type="requiredstring">
<message>确定密码不能为空,请注意填写!</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">6</param>
<param name="maxLength">16</param>
<message>确定密码长度必须在${minLength}至${maxLength}之间</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[(password == repassword)]]></param>
<message>密码不一致</message>
</field-validator>
</field>
</validators>从页面测试 发现无论填入是否正确 都会显示requiredstring的message 如果把requiredstring对应的段落注释 发现其他校验没生效 大虾们 有没见过这个问题 怎么解决 谢谢

解决方案 »

  1.   

    貌似和我看的书不一样,,区别好大,<?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" >
      

  2.   

    把对应memberRegisterAction的MemberRegisterAction-validation.xml 
    该  MemberRegisterAction-validation.xml 
     他的名字 跟memberRegisterAction 名字一样 大小写也一样  在重启下服务 试试 
    你把服务重新启动下  或者 把memberRegisterAction-validation.xml 剪切掉 在重新复制进来
      

  3.   

    可能是配置出了问题.或者页面标签没写对.
    拿那本struts2权威指南的验证框架那章详细参考下
      

  4.   

    struts2  首先执行 全局 或者 局部校验  如果又局部校验 最好不要写 全局校验 回混淆然后执行 actionSupport中的 validate校验。。明白这个顺序就OK了
      

  5.   

    问题解决了 原来validate是要在action里添加get方法