Struts2 Action獲取Scope物件

2021-05-27 08:51:04 字數 2417 閱讀 1540

方式

一、與servlet解耦合的非ioc方式

獲取的scope物件與容器無關,通過actioncontext獲取。

loginaction**如下:

package com.asm;

public class loginaction extends actionsupport

...省略username的get/set方法

}

struts.xml配置如下:

package com.asm;

public class loginaction extends actionsupport

...省略username的get/set方法

}

loginsuc.jsp的主要內容如下:

$

$以下使用scope.getattribute的形式來接受

分析:通過actioncontext

的getcontext

靜態方法得到

actioncontext

物件,然後

actioncontext

物件呼叫

get方法來獲取乙個儲存在

request

範圍中的物件。我們使用

el或通過

request.getattribute

這樣的方式均可以獲取物件值,這說明了這些

map request

物件實際是儲存在

request

範圍內的物件。

方式二、與servlet解耦合的ioc方式

我們建立login2action,主要**如下:

package com.asm;

private string username;

map request;

map session;

public string execute() throws exception

public void setrequest(maprequest)

public void setsession(mapsession)

}...省略username的get/set方法

}

package com.asm;

private string username;

map request;

map session;

public string execute() throws exception

public void setrequest(maprequest)

public void setsession(mapsession)

}...省略username的get/set方法

}

註冊此action的name為login2,隨後修改登入提交為.../login2.action。便可以發布測試。說明:此方法其實和方式一很相似,只是在方式一中我們需要手動的為map request賦值,但是在方式二中它是通過實現介面,在重寫介面中的方法中完成對map requset的賦值,所以稱之ioc方式。借助此例,略談下依賴注入與控制反**所謂依賴注入就是乙個物件自己本身的初始化是依賴其它物件。比如這裡map request這些物件會依賴struts2來給其初始化,稱為依賴注入,而依賴注入的就表示,這些物件的控制權不再由此類本身掌握,而是交給了別的物件,即是控制權反轉了。 強調:方式二是開發中主要用的方式,應重點掌握

方式三、與servlet耦合的非ioc方式

建立login3action,**如下:

package com.asm;

public class login3action extends actionsupport

...省略username的get/set方法。

}

此方法獲取的純粹的scope物件,它與容器相關,這些scope物件操作更強。同樣只需要註冊此action並修改登入頁面便可進行測試。

方式四、與servlet耦合的ioc方式

建立login4action,**如下:

}...省略username的get/set方法

}

同樣只需要註冊此action並修改登入頁面便可發布測試 

struts2 action 配置方法

struts2 action幾乎完全吸收了xwork 的精華,近日學習struts 2,總結一下action的配製方法。首先看一下com.opensymphony.xwork2.action的介面宣告,action提供execute 方法,子類必須實現execute 方法。public inte c...

struts2 action中result引數詳解

chain 用來處理action鏈 com.opensymphony.xwork2.actionchainresult dispatcher 用來轉向頁面,通常處理jsp org.apache.struts2.dispatcher.servletdispatcherresult freemaker ...

註解配置Struts2 Action

一.基礎配置 1.parentpackage註解的引數引數 型別是否必需 預設值描述 value string是無 指定要繼承的父包 如果註解中只有乙個名為value的引數,或其他引數都有預設值,那麼在為value引數設值時可以忽略value和等號 例 parentpackage value str...