请教 struts2验证框架不执行的原因
网上看了好长时间了,除了 帮忙检查有没有写错,没有更多的说明
我检查的很仔细了,
请教大家 是否还有其他原因导致不执行??
干脆我也贴一些关键的地方大家看看吧
[最优解释]
CorpUserLoginAction.xml 这个配置文件的名字不和规范。。
。一:actionName-xx-validation.xml其中actionName为类名,xx为struts配置文件中所配置的action 名字。。。
二:还有就是这验证配置文件和类放在统一包下。。
你试验下看看,我觉的是这样的。如果没有记错的话。。
[其他解释]
struts2标签校验错误会显示错误信息的, 边上还加filererror多余了!
你的action需要实现Validateable和ValidatorAware接口
是否继承了ActionSupport?
[其他解释]
<?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>
<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>
<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">集 团 编 号</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%">密 码</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>
[其他解释]
没有执行
CorpUserLoginAction-validation.xml
CorpUserLoginAction-login-validation.xml
都试过了
[其他解释]