freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

struts2的action講解(已修改)

2025-09-01 12:14 本頁面
 

【正文】 Struts 的 Action 講解 有 Struts 經(jīng)驗(yàn)的朋友都知道 Action 是 Struts 的核心內(nèi)容,當(dāng)然 Struts 也不例外。不過, Struts 與 Struts 的 Action 模型很大的區(qū)別。 Struts Stuts 接口 必須繼承 或者其子類 無須繼承任何類型或?qū)崿F(xiàn)任何接口 表單數(shù)據(jù) 表單數(shù)據(jù)封裝在 FormBean 中 表單數(shù)據(jù)包含在 Action 中,通過 Getter 和Setter 獲取 雖然,理論上 Struts 的 Action 無須實(shí)現(xiàn)任何接口或繼承任何類型,但是,我們?yōu)榱朔奖銓?shí)現(xiàn) Action,大多數(shù)情況下都會繼承 類,并重載( Override)此類里的 String execute()方法。具體的實(shí)現(xiàn),如例 1 所示: % @ page contentType = text/html。 charset=UTF8 % % @ taglib prefix = s uri = /strutstags % html head title Hello World! / title / head body h2 s:property value =message // h2 / body / html 例 1 package tutorial。 import 。 import 。 import 。 public class HelloWorld extends ActionSupport { private String message。 public String getMessage() { return message。 } @Override public String execute() { message = Hello World, Now is + ().format( new Date())。 return SUCCESS。 } } 例 1 classes/tutorial/ package name =ActionDemo extends =strutsdefault action name =HelloWorld class = result / / result / action / package 例 1 classes/ HelloWorld Action的配置 在瀏覽器地址欄中鍵入 看到如圖 1 所示頁面。 圖 1 HelloWorld輸出頁面 參考 JavaDoc,可知 ActionSupport 類實(shí)現(xiàn)了接口: ? ? ? ? ? ? ? ? 默認(rèn)情況下,當(dāng)請求 , Struts運(yùn)行時( Runtime)根據(jù) 里的 Action 映射集 (Mapping),實(shí)例化 ,并調(diào)用其 execute方法。當(dāng)然,我們可以通過以下兩種方法改變這種默認(rèn)調(diào)用。這個功能( Feature)有點(diǎn)類似 Struts 中的 LookupDispathAction。 1. 在 classes/ 中新建 Action,并指明其調(diào)用的方法; 2. 訪問 Action 時,在 Action 名后加上 “!xxx”( xxx 為方法名)。 實(shí)現(xiàn)方法請參考例 2: 在 classes/tutorial/ 中加入以下方法: public String aliasAction() { message =自定義 Action 調(diào)用方法 。 return SUCCESS。 } 例 2 classes/tutorial/ 代碼片段 實(shí)現(xiàn)方法一,在 classes/ 中加入下 面代碼: action name=AliasHelloWorld class= method=aliasAction result//result /action 例 2 classes/ AlaisHelloWorld Action的配置 實(shí)現(xiàn)方法二,使用 地址來訪問 HelloWorld Action。 在瀏覽器地址欄中鍵入 或 圖 2 所示頁面。 圖 2 自定義 Action調(diào)用方法頁面 通過上面的兩個例子,細(xì)心的朋友應(yīng)該可能會發(fā)現(xiàn) classes/tutorial/ 中Action 方法( execute和 aliasAction)返回都是 SUCCESS。這個屬性變量我并沒有定義,所以大家應(yīng)該會猜到它在 ActionSupport 或其父類中定義。沒錯, SUCCESS 在接口,另外同時定義的還有 ERROR, INPUT, LOGIN, NONE。 此外,我在配置 Action時都沒有為 result定義名字( name),所以它們默認(rèn)都為 success。值得一提的是 Struts result不僅僅是 Struts 中 forward 的別名,它可以實(shí)現(xiàn)除forward 外的很激動人心的功能,如將 Action 輸出到 FreeMaker模板、 Velocity模板、JasperReports 和使用 XSL轉(zhuǎn)換等。這些都過 result 里的 type(類型)屬性( Attribute)定義的。另外,您還可以自定義 result類型。 下面讓我們來做一個 Velocity模板輸出的例子,首先在 classes/ Action映射( Mapping),將其 result 類型設(shè)為 velocity,如以下代碼所示: action name=VMHelloWorld class= result type=velocity//result /action 例 3 classes/ VMHelloWorld Action的配置 新建 ,內(nèi)容如下所示: html head titleVelocity/title meta equiv=contenttype content=text/html。 charset=UTF8 /head body h2Message rendered in Velocity: $message/h2 /body /html 例 3 在瀏覽器地址欄中鍵入 面輸出如下圖 3 所示。 圖 3 的輸出頁面 要運(yùn)行例 3 需要在 WEBINF/lib 中添加以下幾個包: ? ? ? ? 前面,我花了不少的時間討論 Action 的輸出。我老板有句名言 ——程序無非就是輸入、操作和輸出。因此,現(xiàn)在我們要討論一下輸入 ——表單輸入。 使用 Struts ,表單數(shù)據(jù)的輸入將變得非常方便,和普通的 POJO一樣在 Action 編寫 Getter和 Setter,然后在 JSP的 UI 標(biāo)志的 name與其對應(yīng),在提交表單到 Action 時,我們就可以取得其值。 讓我們看一個例子,新建 Login Action,它通過 的表單獲得用戶名和密碼,驗(yàn)查用戶名是否為 “max”,密碼是否則為 “secret”。如果,兩者都符合,就在 HelloWorld中顯示“Wele, max”,否則顯示 “Invalid user or Password”。 package tutorial。 import 。 publicclass Login extends ActionSupport { private String name。 private String password。 private String message。 public String getName() { return name。 } publicvoid setName(String name) { = name。 } public String getPassword() { return password。 } publicvoid setPassword(String password) { = password。 } public String getMessage() { return message。 } @Override public String execute() { if(max.equals(name) amp。amp。Secret.equals(password)) { message =Wele, + name。 }else{ message =Invalid user or password。 } return SUCCESS。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1