本人想用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>
登录的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>
LogInAction-logIn.java是你自己定义的Action类。
中间为action配置名称,也就是在struts.xml里配置的name属性,而不是method属性
<action name="xxxAction" class="XXXAction" method="methodXXX">
XXXAction-xxxAction-validation.xml
这样就校验就起作用了
如果校验类名为:LogInAction.java,那么校验文件改为LogInAction-validation.xml试试
并且把type类型的required换成requiredstring
1.确定在一个包下
2.Action类名和Action类名-validation.xml的Action类名完全一样。
3.required换成requiredstring.
4.确定struts.xml和jsp文件的action的name相同。
5.关闭Eclipse,重新打开,再运行。
6.如果上述执行完后,还是不行。我建议就放弃吧,用其他方法代替。
<! 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文件时。开始的空格哇!太隐蔽了!!