日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts2 手动验证和框架验证

發布時間:2024/9/16 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struts2 手动验证和框架验证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

手動驗證

struts.xml

<?xml?version="1.0"?encoding="UTF-8"?> <!DOCTYPE?struts?PUBLIC "-//Apache?Software?Foundation//DTD?Struts?Configuration?2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant?name="struts.devMode"?value="true"></constant> <constant?name="struts.enable.DynamicMethodInvocation"?value="true"></constant> <include?file="cn/itcast/validate/struts_validate.xml"></include> </struts>

struts_validate.xml

<?xml?version="1.0"?encoding="UTF-8"?> <!DOCTYPE?struts?PUBLIC "-//Apache?Software?Foundation//DTD?Struts?Configuration?2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package?name="validate"?namespace="/validate"?extends="struts-default"> <action?name="validateAction_*"?class="cn.itcast.validate.ValidateAction"?method="{1}"> <result?name="success">/validate/success.jsp</result> <result?name="input">/validate/login.jsp</result> </action> </package> </struts>

ValidateAction.java

package?cn.itcast.validate; import?java.util.regex.Matcher; import?java.util.regex.Pattern; import?com.opensymphony.xwork2.ActionSupport; @SuppressWarnings("serial") public?class?ValidateAction?extends?ActionSupport?{ private?String?username; public?String?getUsername()?{ return?username; } public?void?setUsername(String?username)?{ System.out.println("ValidateAction?*****?setusername()"); this.username?=?username; } public?String?getPsw()?{ return?psw; } public?void?setPsw(String?psw)?{ this.psw?=?psw; } private?String?psw; /**?驗證方法:*?*改動作類action必須繼承ActionSupport或者實現Validateable接口*?*必須保證serUsername(),validate(),login()方法的執行順序如下:*?*setUsername()*?*validate()*?*login()**如果登陸失敗,如何處理:**this.addFildError(key,value);**key:錯誤提示字段**value:錯誤提示信息**什么時候才是驗證通過?**驗證通過:1.map集合存在;2.map集合存在時為,**驗證不通過:map集合存在,并且不為空**分析需求:**用戶名不能為null,""**密碼不能為null,"",并且密碼的長度6-12之間*?*針對所有業務方法進行驗證還是針對某個指定業務方法進行驗證?*?*重寫的validate()方法,針對所有業務方法進行驗證*?*?重寫的validate()方法加上要驗證的制定的業務方法名(業務方法名的首字母大寫),實現針對某個指定的業務方法進行驗證*?*為什么要這樣進行拼接?因為struts2框架底層拼接,如果不這樣寫底層就找不到對應方法名*?(non-Javadoc)*?@see?com.opensymphony.xwork2.ActionSupport#validate()*/ public?void?validateLogin()?{ System.out.println("ValidateAction?******?validate()"); if(username==null||username.equals("")){ this.addFieldError("error",?"用戶名不能為空"); } if(psw==null||psw.equals("")){ this.addFieldError("error",?"密碼不為空"); }else{ String?pattern="^[0-9a-zA-Z]{6,12}"; Pattern?p?=?Pattern.compile(pattern); Matcher?m?=?p.matcher(psw); boolean?b?=?m.matches(); if(!b){ this.addFieldError("error",?"密碼的長度必須在6-12之間"); } } } public?String?login(){ //?驗證 System.out.println("ValidateAction?****** login()"+"username:"+username+"psw:"+psw); return?"success"; } public?String?test(){ System.out.println("validate?*******?test()"); return?"success"; } }

login.jsp

<%@?page?language="java"??pageEncoding="UTF-8"?contentType="text/html;?charset=utf-8"%> <%@?taglib?uri="/struts-tags"?prefix="s"?%> <html><head>????<title>My?JSP?'login.jsp'?starting?page</title></head><body><br><s:fielderror/><s:form?name="loginForm"?method="post"??namespace="/validate"??action="validateAction_login.action"?theme="simple"?><table?border="1"><tr><td>用戶名</td><td>?<s:textfield?name="username"?/></td></tr><tr><td>密碼</td><td><s:password?name="psw"?/></td></tr><tr><td>&nbsp;</td><td><s:submit?value="登陸"/></td></tr></table></s:form></body><a?href="${pageContext.request.contextPath}/validate/validateAction_test.action">test其他的方法</a></html>

框架驗證

struts2框架驗證(xml方式)

????*首先要從頁面中獲取對應的標簽name屬性的值,在動作類action中聲明同名的屬性,提供get和set方法

????*創建一個xml格式驗證文件:

????????*命名方式:ActionClassName-validation.xml,ActionClassName指的是動作類action的名稱

????????*<validators>標簽:根元素

????????*field:指定action中要校驗的屬性,實際上就是頁面中表單的name的屬性的值

????????????*name:指定頁面中表單的name屬性的值

????????*field-validator:指定驗證規則

????????????*type:指定驗證規則名稱,struts2框架提供的驗證規則放在xwork-core-xxx.jar下的com.opensymphony\xwork2\validator\validators的default.xml配置文件。

????????*param:向底層的驗證規則傳遞的參數

????????*message:驗證失敗時,提供的錯誤提示信息

????*如果要對指定方法進行驗證的話:

????????*xml驗證文件的命名方式:ActionClassName-ActionName-validation.xml

????????????????????????????????ActionName對應的是struts.xml文件對應的action標簽的name屬性的值????????

總結

以上是生活随笔為你收集整理的struts2 手动验证和框架验证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。