動態方法呼叫
在struts2中動態方法呼叫有三種方式,動態方法呼叫就是為了解決乙個action對應多個請求的處理,以免action太多
第一種方式:指定method屬性
這種方式我們前面已經用到過,類似下面的配置就可以實現
redirect
/web-inf/jsppage/chapter2/plaintext.jsp
第二種方式:感嘆號方式(需要開啟),官網不推薦使用這種方式,建議大家不要使用.
用這種方式需要先開啟乙個開關
將此常量設定為true,這種方式才能使用,使用見示例
action
package chapter3.action;
public class chapter3action
public string result2()}
jsp中訪問方式ba
sepa
th/c
hapt
er3/
chap
ter3
acti
on!r
esul
t1">re
sult
1>
>ref="
basepath/chapter3/chapter3action!result1">result1
/chapter3/chapter3action!result2">result2
如果配置了字尾,必須這樣寫:
/chapter4/chapter4action!create.action
xml中配置方式
/web-inf/jsppage/chapter3/result1.jsp
/web-inf/jsppage/chapter3/result2.jsp
/web-inf/jsppage/chapter3/chapter3.jsp
第三種方式:萬用字元方式(官網推薦使用)
首先得關閉開關
這一種方式是由第一種轉變過來的,我們可以看到,第一種方式有很多重複的**,那麼我們可以進行變形,看下面的**
/…/test.jsp
chapter3_*這裡的*就是你呆會要匹配的字串,即你在後面的請求中得這樣寫
chapter3_create 或
chapter3_update
注意,這時你action中必須有create和update方法與之匹配,甚至還可以這樣匹配
/…/.jsp
但是這時一定要有對應的jsp頁面存在,並且相應的路徑不能錯,這就對我們的命名進行了強制性的規定,一定要規範.
課堂示例:
action
public class chapter4action extends actionsupport
public string create()
public string index()
} xml:
/web-inf/jsppage/chapter4/chapter4_.jsp
struts2中提供了乙個靜態類,他裡面的方法可以獲取到我們的httpservletresponse, httpservletrequest, 然後呢就可以還原到我們以前的使用方式了.
直接訪問
雖然struts2提供了actioncontext來訪問servlet api,但是這種方式畢竟不能直接獲取servelt api例項,為了在action中直接訪問servlet api,struts2還提供了一系列介面
servletcontextaware 實現此介面後,可以取得servletcontext
servletrequestaware 實現此介面後,可以取得httpservletrequest
servletresponseaware 實現此介面後,可以取得httpservletresponse
sessionaware 實現此介面後,可以取得httpsession,注意,這裡有點特殊,取得的是乙個mapsession,***負責將session中儲存的鍵值進行解析,並一一對應.
所以我們通常的做法是:
為了讓baseaction能有驗證的功能,並且不能被例項化,開發中我們會這樣做:
public abstract class baseaction extends actionsupport implements
servletresponseaware, servletrequestaware, sessionaware
然後讓我們每個模組的action來繼承這個baseaction類,然後我們就可以在action中直接使用servelt的api了.
Struts2獲取request三種方法
struts2裡面有三種方法可以獲取request,最好使用servletrequestaware介面通過ioc機制注入request物件。在action中獲取request方法一 在action中的 map request map actioncontext.getcontext get requ...
用struts2接收三種引數
yangguang huoyunshenstruts2中action接收引數的方法主要有以下三種 struts2中action接收引數的方法主要有以下三種 1.使用action的屬性接收引數 a.定義 在action類中定義屬性,建立get和set方法 b.接收 通過屬性接收引數,如 usernam...
Struts2方法呼叫的三種方式
在struts2中方法呼叫概括起來主要有三種形式 第一種方式 指定method屬性 success.jsp 這樣struts2就會呼叫student 中的add方法。第二種方式 動態方法呼叫 dmi 用這種方法需要設定乙個常量 動態方法呼叫是指表單元素的action並不是直接等於某個action的名...