方式
一、與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...