struts2 validation 分兩種方式,Annotations和xml驗(yàn)證
Annotations驗(yàn)證
在需要驗(yàn)證的方法上加入
@Validations(requiredStrings = {
@RequiredStringValidator(fieldName = "cust.custRegistCode", message = "手機(jī)號(hào)碼不能為空"), @RequiredStringValidator(fieldName = "cust.custRegistPsw", message = "密碼不能為空"), @RequiredStringValidator(fieldName = "cust.custMail", message = "電子郵件不能為空"), @RequiredStringValidator(fieldName = "cust.validateCode", message = "驗(yàn)證碼不能為空") })
導(dǎo)入相應(yīng)的包就可以,需要注意的是,在不需要驗(yàn)證的方法上要加 @SkipValidation。
在項(xiàng)目中測(cè)試的時(shí)候不加 @SkipValidation可能出現(xiàn)其他action打不開的狀況(不知道是什么問題,加了 @SkipValidation就沒問題,望知道的人指點(diǎn)下)
xml驗(yàn)證
文件命名方式:ActionClassName-ActionAliasName-validation.xml
其中,ActionClassName表示的是這個(gè)Class的名稱.ActionAliasName表示的是多處理邏輯中的別名.對(duì)應(yīng)的是struts.xml的配置文件中配置Action標(biāo)簽的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_后面的是什么,我的應(yīng)用中是 add_User. ok,解決了,你的校驗(yàn)規(guī)則文件名就是 UserAction-add_User-validation.xml. 還要記住這個(gè)文件要與.class放在一個(gè)包下面才行哦 在struts.xml的action中一定要有一個(gè)input和success的返回結(jié)果
如果使用了s:form的標(biāo)簽,acton的后面的url就不要加.action.可能會(huì)出現(xiàn)錯(cuò)誤
有資料上說在頁(yè)面的form中使用validator="true"的方式生成javascript的客戶端驗(yàn)證.這個(gè)可能是使用s:form時(shí)需要添加的,在我的項(xiàng)目中用的是普通的form,沒加這個(gè)可以通過。
|
|