日期:2014-05-18  浏览次数:20600 次

Struts2.0的校验问题
在做项目的时候,我用Spring+hibernate+struts开发时,遇到了一个校验的问题,由于struts是采用的webwork的校验机制,就是对于每个Action类写一个   ActionName-validation.xml   文件,WebWork会自动从发布包里的xwork   jar文件中取得一个事先定义好的校验器集合(com/opensymphony/xwork/validator/validators/default.xml)来完成校验~现在的问题,当我对输入界面不为空的项进行校验的时候,可以校验出来,但当校验之后,再向form表单添入符合要求的值form表单也提交不了!并且显示如 "name   is   required "的message消息还一直在界面上显示,不知道是为什么啊?怎么解决啊?那位大虾帮帮忙啊~


------解决方案--------------------
你有没有Debug跟踪一下,看是哪里报错呢?

------解决方案--------------------
我用的tomcat运行的,tomcat不报错~
下面是RoleAction-Save-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 ">


<!-- START SNIPPET: fieldValidatorsExample -->

<validators>
<field name= "role.name ">
<field-validator type= "requiredstring ">
<message> the name is required </message>
</field-validator>
</field>

</validators>
------解决方案--------------------
属性文件是否设置key
------解决方案--------------------
属性文件是指文件啊?
------解决方案--------------------
不太懂~我是个新手~
------解决方案--------------------
已经解决拉,谢谢大家拉~

------解决方案--------------------
怎么解决的
------解决方案--------------------
..............
------解决方案--------------------
如果你的错误信息一直没有取消,我也有过这样的问题!

1: 错误的校验----------我用的是date类型, 下面写的是错误的,会一直显示必须输入!
<field name="stockPoolName.selecdate">
<field-validator type="requiredstring">
<message key="errors.required"/>
</field-validator>
</field>


2:正确的校验
<field name="stockPool.selectdate">
<field-validator type="date">
<message key="errors.required"/>
</field-validator>
</field>

3:总结
我们是什么类型必须对应什么类型的校验!不能使用 type="requiredstring"来校验一切类型!~


希望对你有用!!!!!!!!