Annotations验证
在需要验证的方法上加入
@Validations(requiredStrings = {
@RequiredStringValidator(fieldName = "cust.custRegistCode", message = "手机号码不能为空"),
@RequiredStringValidator(fieldName = "cust.custRegistPsw", message = "密码不能为空"),
@RequiredStringValidator(fieldName = "cust.custMail", message = "电子邮件不能为空"),
@RequiredStringValidator(fieldName = "cust.validateCode", message = "验证码不能为空")
})
导入相应的包就可以,需要注意的是,在不需要验证的方法上要加 @SkipValidation。
在项目中测试的时候不加 @SkipValidation可能出现其他action打不开的状况(不知道是什么问题,加了 @SkipValidation就没问题,望知道的人指点下)
xml验证
文件命名方式:ActionClassName-ActionAliasName-validation.xml
其中,ActionClassName表示的是这个Class的名称.ActionAliasName表示的是多处理逻辑中的别名.对应的是struts.xml的配置文件中配置Action标签的Name属性值
如果在struts.xml中使用了通配符
如:
<action name="add_*" method="add{1}" class="struts.{1}Action">
<param name="path">WEB-INF/classes/user.xml</param>
<result name="success" type="redirect-action">
User_List
</result>
<result name="input">/user/addUser.jsp</result>
</action>
在这种情况下就要看提交的from的action中add_后面的是什么,我的应用中是 add_User.
ok,解决了,你的校验规则文件名就是 UserAction-add_User-validation.xml.
还要记住这个文件要与.class放在一个包下面才行哦
在struts.xml的action中一定要有一个input和success的返回结果
如果使用了s:form的标签,acton的后面的url就不要加.action.可能会出现错误
有资料上说在页面的form中使用validator="true"的方式生成javascript的客户端验证.这个可能是使用s:form时需要添加的,在我的项目中用的是普通的form,没加这个可以通过。