struts2請求引數處理

2021-07-13 02:45:17 字數 2063 閱讀 3783

struts2 和 mvc 定義關係

strutsprepareandexecutefilter: 控制器

jsp : 檢視

action : 可以作為模型,也可以是控制器

struts2 action 接受請求引數 :屬性驅動 和 模型驅動

第一種:action 本身作為model物件,通過成員setter封裝 (屬性驅動 )

頁面:使用者名稱 

action:

publicclass registaction1 extends actionsupport 到$之間

url: 網路路徑校驗器

電子郵件位址無效

regex:正規表示式校驗器

手機號格式不正確!

fieldexpression : 字段表示式校驗

兩次密碼輸入不一致

*************************====

如何對指定的方法校驗

格式 action類名-actionname(元素name屬性)-validation.xml

例如 : 校驗addcustomeraction中execute方法 配置name="addcustomer".../> 校驗檔案名字:

addcusotmeraction-addcustomer-validation.xml

步驟一: 自定義校驗器必須實現 validator  介面

通常自定義校驗器 繼承 validatorsupport 和 fieldvalidatorsupport

*validatorsupport 針對不是乙個輸入字段 (兩個密碼一致)

*fieldvalidatorsupport 針對是乙個輸入字段  (使用者名稱非空)

步驟二: 註冊校驗器

在工程的src下新建validators.xml檔案

引入 xwork-core-2.3.7.jar中xwork-validator-config-1.0.dtd 

步驟三 :使用校驗器

在action所在包 建立action類名-validation.xml

編寫乙個類繼承fieldvalidatorsupport :

public class myagevalidator extends fieldvalidatorsupport {

public void validate(objectobj) throws validationexception {

// 獲得欄位名稱:

string name =this.getfieldname();

// 獲得欄位的值:

object value =  this.getfieldvalue(name, obj);

if(value instanceofinteger){

int age = (integer)value;

if(age < 0){

this.addfielderror(name,obj);

*註冊校驗規則:

* 在src下建立乙個validators.xml

* 引入乙個dtd:

* xwork-core-2.3.7.jar下的xwork-validator-config-1.0.dtd

* 配置:

"">

aaa" class="cn.***x.action.demo6.myagevalidator">

* 使用校驗規則:

aaa">

年齡不能為負數!

****

實際開發中很少用到自定義校驗器

Struts2請求處理流程

1.1 struts2請求處理 1.乙個請求在struts2框架中的處理步驟 a 客戶端初始化乙個指向servlet容器的請求 b 根據web.xml配置,請求首先經過actioncontextcleanup過濾器,其為可選過濾器,這個過濾器對於struts2和其他框架的整合很有幫助 sitemes...

Struts2之action接收請求引數

1.採用基本型別接受請求引數 get post action public class getparamaction extends actionsupport public void setname string name public int getage public void setage ...

Struts2請求流程

1 客戶端傳送請求 2 請求先通過actioncontextcleanup filterdispatcher 6 actionproxy建立乙個actioninvocation的例項 7 actioninvocation呼叫真正的action,當然這涉及到相關 的呼叫 8 action執行完畢,ac...