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 = "驗證碼不能為空") })
導(dǎo)入相應(yīng)的包就可以,需要注意的是,在不需要驗證的方法上要加 @SkipValidation。
在項目中測試的時候不加 @SkipValidation可能出現(xiàn)其他action打不開的狀況(不知道是什么問題,加了 @SkipValidation就沒問題,望知道的人指點下)
xml驗證
文件命名方式:ActionClassName-ActionAliasName-validation.xml
其中,ActionClassName表示的是這個Class的名稱.ActionAliasName表示的是多處理邏輯中的別名.對應(yīng)的是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_后面的是什么,我的應(yīng)用中是 add_User. ok,解決了,你的校驗規(guī)則文件名就是 UserAction-add_User-validation.xml. 還要記住這個文件要與.class放在一個包下面才行哦 在struts.xml的action中一定要有一個input和success的返回結(jié)果
如果使用了s:form的標簽,acton的后面的url就不要加.action.可能會出現(xiàn)錯誤
有資料上說在頁面的form中使用validator="true"的方式生成javascript的客戶端驗證.這個可能是使用s:form時需要添加的,在我的項目中用的是普通的form,沒加這個可以通過。
|
|
來自: soft_xiang > 《Java》