日期:2014-05-19  浏览次数:20773 次

请教 struts2验证框架不执行的原因
网上看了好长时间了,除了 帮忙检查有没有写错,没有更多的说明
我检查的很仔细了,
请教大家 是否还有其他原因导致不执行??

干脆我也贴一些关键的地方大家看看吧
------最佳解决方案--------------------
CorpUserLoginAction.xml 这个配置文件的名字不和规范。。
。一:actionName-xx-validation.xml其中actionName为类名,xx为struts配置文件中所配置的action 名字。。。
二:还有就是这验证配置文件和类放在统一包下。。

你试验下看看,我觉的是这样的。如果没有记错的话。。
------其他解决方案--------------------
struts2标签校验错误会显示错误信息的, 边上还加filererror多余了!

你的action需要实现Validateable和ValidatorAware接口
是否继承了ActionSupport?
------其他解决方案--------------------
引用:
没有执行

CorpUserLoginAction-validation.xml

CorpUserLoginAction-login-validation.xml

都试过了

这个命名主要看你的form是在哪个方法里面的  如果是默认的execute()就要第一个命名,如果你用的是login方法那就用第二个命名,还有就是放到你的action的包里面,和拦截器没关系
------其他解决方案--------------------
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>

------其他解决方案--------------------
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>