使用 Prebuilt Action類提升開發效率
Struts framework帶有好幾個prebuilt Action類
使用它們可以大大節省開發時間
其中最有用的是org
apache
struts
actions
ForwardAction 和 org
apache
struts
actions
DispatchAction
使用 ForwardAction
在應用程序中
可能會經常出現只要將Action對象轉發到某個JSP的情況
在上一點中曾提到總是由Action調用JSP是個好習慣
如果我們不必在Action中執行任何業務邏輯
卻又想遵循從Action訪問頁面的話
就可以使用ForwardAction
它可以使你免去創建許多空的Action類
運用ForwardAction的好處是不必創建自己的Action類
你需要做的僅僅是在Struts配置文件中配置一個Action mapping
舉個例子
假定你有一個JSP文件index
jsp
而且不能直接調用該頁面
必須讓程序通過一個Action類調用
那麼
你可以建立以下的Action mapping來實現這一點
正如你看到的
當 /home 被調用時
就會調用ForwardAction 並把請求轉發到 index
jsp 頁面
再討論一下不通過一個Action類直接轉發到某個頁面的情況
必須注意我們仍然使用元素中的forward屬性來實現轉發的目標
這時元素定義如下
以上兩種方法都可以節省你的時間
並有助於減少一個應用所需的文件數
使用 DispatchAction
DispatchAction是Struts包含的另一個能大量節省開發時間的Action類
與其它Action類僅提供單個execute()方法實現單個業務不同
DispatchAction允許你在單個Action類中編寫多個與業務相關的方法
這樣可以減少Action類的數量
並且把相關的業務方法集合在一起使得維護起來更容易
要使用DispatchAction的功能
需要自己創建一個類
通過繼承抽象的DispatchAction得到
對每個要提供的業務方法必須有特定的方法signature
例如
我們想要提供一個方法來實現對購物車添加商品清單
創建了一個類ShoppingCartDispatchAction提供以下的方法
那麼
這個類很可能還需要一個deleteItem()方法從客戶的購物車中刪除商品清單
還有clearCart()方法清除購物車等等
這時我們就可以把這些方法集合在單個Action類
不用為每個方法都提供一個Action類
在調用ShoppingCartDispatchAction裡的某個方法時
只需在URL中提供方法名作為參數值
就是說
調用addItem()方法的 URL看起來可能類似於
//myhost/storefront/action/cart?method=addItem
其中method參數指定ShoppingCartDispatchAction中要調用的方法
參數的名稱可以任意配置
這裡使用的
method
只是一個例子
參數的名稱可以在Struts配置文件中自行設定
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28942.html