struts2 validation 分两种方式,Annotations和xml验证
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,没加这个可以通过。
|
|
来自: soft_xiang > 《Java》