Struts2中請求引數校驗
在Struts2中,請求引數的校驗要放在服務端進行。其實我們在做.NET的專案時,使用過EasyUI,EasyUI有各種校驗機制,那會是在客服端就直接對輸入引數進行了校驗。但是我們的Struts框架也是蠻強大的,它本身就給我們提供了非常詳細的校驗機制。
1.手動校驗
使用手動校驗,需要一下這麼幾個條件:
①你的Action要繼承ActionSupport介面;
②重寫validate介面,如果屬性有問題,通過addFieldError(String,String)方法儲存錯誤資訊.
③如果向fieldError中儲存了錯誤資訊,workflow攔截器就會跳轉到input檢視.
④在input檢視上通過<s:fielderror>來顯示錯誤資訊.可以通過 <s;fielderror fieldName="">
程式碼展示:
package cn.tgb.action;
import cn.tgb.model.People;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class PeopleAction01 extends ActionSupport implements ModelDriven<People>{
private People people = new People();
@Override
public People getModel() {
return people;
}
public String register(){
System.out.println(people.getUsername()+"註冊成功了~");
return null;
}
public String longin(){
System.out.println(people.getUsername()+"登陸成功了~");
return null;
}
//重寫ActionSupport中的validate方法
@Override
public void validate() {
System.out.println("引數校驗");
}
public void validateRegedit(){
System.out.println("註冊方法引數校驗");
}
public void validateLogin(){
System.out.println("註冊方法引數校驗");
}
}
2.配置校驗
使用配置校驗,需要滿足下面的條件:
①你的Action要繼承ActionSupport介面;
②建立一個xml檔案來校驗,這個xml檔案要和Action在同一個包下,命名ActionClassName_validation.xml;如果一個Action中有多個方法,如果我們要針對該方法進行校驗的話,將xml檔案命名為ActionClassName-actionName-validation.xml即可。
③在xml檔案中配置校驗。
程式碼展示:
加入我們對PropelAction中的register()方法進行校驗,xml檔案的命名為:PeopleAction-register-validation.xml.配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<!-- 校驗使用者名稱不能為空 -->
<field-validator type="requiredstring">
<message>使用者名稱不能為空!</message>
</field-validator>
<!-- 校驗使用者名稱長度必須在6-10位之間 -->
<field-validator type="stringlength">
<param name="maxLength">10</param>
<param name="minLength">6</param>
<message>使用者名稱必須在${minLength}-${maxLength}位之間</message>
</field-validator>
</field>
<!-- 校驗age屬性必須在10-80之間 -->
<field name="age">
<field-validator type="int">
<param name="min">10</param>
<param name="max">80</param>
<message>年齡必須在${min}-${max}之間</message>
</field-validator>
</field>
<!-- 校驗生日範圍 -->
<field name="birthday">
<field-validator type="date">
<param name="max">2004-12-31</param>
<param name="min">1934-01-01</param>
<message>生日必須在 1934年01月01日到2004年12月31日之間</message>
</field-validator>
</field>
<!-- 校驗郵箱 -->
<field name="email">
<field-validator type="email">
<message>郵箱格式化不正確</message>
</field-validator>
</field>
<!-- 主頁校驗 -->
<field name="myurl">
<field-validator type="url">
<message>格式不正確</message>
</field-validator>
</field>
<!-- 對telphone資訊使用正則校驗 -->
<field name="telphone">
<field-validator type="regex">
<param name="regexExpression"><![CDATA[^139\d{8}$]]></param>
<message>格式不正確,必須是139開始</message>
</field-validator>
</field>
<field name="repassword">
<field-validator type="fieldexpression">
<param name="expression"><![CDATA[(password==repassword)]]></param>
<message>兩次密碼輸入不一致</message>
</field-validator>
</field>
</validators>
總結:在struts學習的這塊,一定要和前面學習的ASP.NET MVC結合起來,這樣對理論的理解和比較快;在一個就是要多多動手實踐,很多時候看視訊中的程式碼邏輯很簡單,但是讓自己敲卻不一定敲的出來。而且敲程式碼的也可以加深自己的知識點的理解,實現程式碼也會提高自己的興趣和自信心,何樂而不為呢?
相關文章
- fastapi 請求引數 校驗ASTAPI
- Struts2中獲取請求引數
- C# .net framework .net core 3.1 請求引數校驗, DataAnnotations, 自定義引數校驗C#Framework
- 基礎設施建設——全域性請求引數校驗
- 封裝axios請求並對提交引數進行校驗封裝iOS
- GOLANG Web請求引數驗證GolangWeb
- ajax中POST請求與引數(請求體)設定
- 有趣的請求引數/請求頭
- SpringMVC學習(三)對映請求引數&請求引數SpringMVC
- 引數校驗註解
- 介面測試-引數校驗
- Spring Boot 引數校驗Spring Boot
- 如何高效定義和驗證restful請求的引數REST
- struts2資料校驗
- 請求引數的傳遞
- SpringMVC請求引數解析SpringMVC
- Charles 修改請求(Request)引數
- 如何在專案中優雅的校驗引數
- Postman傳送請求引數是Map格式的請求Postman
- 【Vue】元件使用之引數校驗Vue元件
- Springboot引數校驗--最全Spring Boot
- SpringMVC實現引數校驗SpringMVC
- 使用strutstestcase如何在請求引數中傳遞物件...物件
- Django csrf跨站請求偽造,校驗,CBV忽略與允許csrf校驗Django
- GET請求的引數丟失
- 實現Nest中引數的聯合型別校驗型別
- Flask開發技巧之引數校驗Flask
- angularjs中ajax請求時傳遞引數的方法AngularJS
- struts2 action中result引數詳解
- 表單請求獲取路由引數路由
- request的請求引數獲取方式
- 漫遊 servlet請求引數 %urldecodeServlet
- java傳送get請求帶引數Java
- charles 打斷點修改請求引數斷點
- Retrofit 動態引數(非固定引數、非必須引數)(Get、Post請求)
- 關於在request請求時,處理請求引數的問題
- Spring WebFlux 基礎教程:引數校驗SpringWebUX
- 【深度思考】如何優雅的校驗引數?