请原谅,因为我对Struts2很新。
我创建了一个非常简单的表单,并且我创建了以下LoginAction-validation.xml:
<validators>
<field name="username">
<field-validator type="requiredstring">
<message key="username.required"/>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message key="password.required"/>
</field-validator>
</field>
</validators>
我已将此xml文件放在WEB-INF / classes下。当我运行jsp页面并将用户名和密码字段留空时,我不会收到警告消息,而是将我重定向到error.jsp。
我看过控制台,结果显示在此过程中有一些警告:
WARNING: Parameter [username] is not on the excludeParams list of patterns and will be appended to action!
WARNING: Parameter [password] is not on the excludeParams list of patterns and will be appended to action!
我怀疑也许我已将validation.xml放在错误的文件夹中,但我不确定哪里是正确的位置。谢谢你的回复!
答案 0 :(得分:1)
验证xml文件必须与它验证的操作类位于同一Java包中。
在你的war文件中,LoginAction-validation.xml
文件应位于WEB-INF/classes/your_loginAction_package
内。
答案 1 :(得分:1)
如AleksandrM所述,每个action-validation.xml文件必须与对应的Action位于同一位置。
访问者验证程序例外,其中object-validation.xml文件必须位于您要验证的对象的同一文件夹中,而不是操作。
一些信息:
<s:fielderror />
放入其中。答案 2 :(得分:1)
我认为问题是您的validation.xml
未正确放置。
表示不将validation.xml文件放在web-inf/classes
文件夹中,而是放在
您的操作类所在的操作包。
例如:对于某些操作类,您的包名称为com.insert
和your class name is
Insert.java
&amp;您的验证文件必须位于名称为
same pacakge
中
Insert-validation.xml
然后它会正常工作。
Bottom Line Is:action class and validation file should be present in a same package.