在action獲取scope物件
方式一、與servlet解耦合的非ioc方式
獲取的scope物件與容器無關,通過actioncontext獲取。
loginaction**如下:
package com.asm;
public class loginaction extends actionsupport
$的形式來接受
request:
<%=request.getattribute("req") %>
session:
<%=session.getattribute("ses") %>
分析:通過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
註冊此action的name為login2,隨後修改登入提交為.../login2.action。便可以發布測試。說明:此方法其實和方式一很相似,只是在方式一中我們需要手動的為map request賦值,但是在方式二中它是通過實現介面,在重寫介面中的方法中完成對map requset的賦值,所以稱之ioc方式。借助此例,略談下依賴注入與控制反**所謂依賴注入就是乙個物件自己本身的初始化是依賴其它物件。比如這裡map request這些物件會依賴struts2來給其初始化,稱為依賴注入,而依賴注入的就表示,這些物件的控制權不再由此類本身掌握,而是交給了別的物件,即是控制權反轉了。 強調:方式二是開發中主要用的方式,應重點掌握
方式三、與servlet耦合的非ioc方式
建立login3action,**如下:
package com.asm;
public class login3action extends actionsupport
此方法獲取的純粹的scope物件,它與容器相關,這些scope物件操作更強。同樣只需要註冊此action並修改登入頁面便可進行測試。
方式四、與servlet耦合的ioc方式
建立login4action,**如下:
request.setattribute("req", "requst屬性
");session.setattribute("ses", "sesion屬性
system.out.println("測試:
"+request);
this.request=request;
system.out.println("測試:
...省略
username
的get/set方法
同樣只需要註冊此action並修改登入頁面便可發布測試
Struts2 Action獲取Scope物件
方式 一 與servlet解耦合的非ioc方式 獲取的scope物件與容器無關,通過actioncontext獲取。loginaction 如下 package com.asm public class loginaction extends actionsupport 省略username的get...
在filter中獲取action的引數值
public voidonactionexecuting actionexecutingcontextfiltercontext 中比較方便 有filtercontext.actionparameters,key value,直接可以獲得 但是在其他的 public void onactionexe...
Spring中對scope的意思
預設情況下,從 bean工廠所取得的例項為singleton bean的singleton屬性 1.singleton spring容器只存在乙個共享的bean例項,預設的配置。2.prototype 每次對bean的請求都會建立乙個新的bean例項。二者選擇的原則 有狀態的bean都使用proto...