JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Web Framework » Struts  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 [Struts入門]使用LookupDispatchAction類別
caterpillar

良葛格

版主

發文: 2613
積分: 70
於 2004-07-27 13:39 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
org.apache.struts.actions.LookupDispatchAction類別是DispatchAction類別的子類,與DispatchAction類似的是,它透過請求上的參數來決定該執行哪一個方法,不過LookupDispatchAction多了查詢訊息資源檔案的功能,LookupDispatchAction的用處之後,就是當一個表單中包括兩個以上同名的送出按鈕時,可以透過查詢訊息資源檔來確定相對應的動作。

直接以實例來說明,在繼承LookupDispatchAction之後,您要重新定義getKeyMethodMap()方法,並定義好自己的相關處理方法,例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package onlyfun.caterpillar;
                                                                                
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.actions.*;
                                                                                
public class ShoppingAction extends LookupDispatchAction {
    protected Map getKeyMethodMap() {
        Map map = new HashMap();
        map.put("button.continue", "continue");
        map.put("button.checkout", "checkout");
        return map;
    }
 
    public ActionForward continue(ActionMapping mapping,
                              ActionForm form,
                              HttpServletRequest request,
                              HttpServletResponse response)
    throws Exception {
        // ......
    }
 
     public ActionForward checkout(ActionMapping mapping,
                              ActionForm form,
                              HttpServletRequest request,
                              HttpServletResponse response)
    throws Exception {
        // ......
    }                                                              
}


假設訊息資源檔中包括以下的訊息:
1
2
button.continue=Continue
button.checkout=Checkout


為了要使用LookupDispatchAction,我們如同DispatchAction一樣在struts-config.xml中定義請求參數中該有的名稱:
1
2
3
4
   <action path="/shopping"
           type="onlyfun.caterpillar.ShoppingAction"
           parameter="method"
           name="cartForm"/>


現在假設您的表單頁面包括以下的內容:
1
2
3
4
5
6
7
8
    <html:form action="/shopping">
        <html:submit property="method">
            <bean:message key="button.continue"/>
        </html:submit>
        <html:submit property="method">
            <bean:message key="button.checkout"/>
        </html:submit>
    </html:form>


這些Struts自訂標籤在執行後會產生以下的內容:
1
2
3
4
<form name="cartForm" method="post" action="/HelloStruts/shopping.do">
    <input type="submit" name="method" value="Continue"/>
    <input type="submit" name="method" value="Checkout"/>
</form>


所以當您按下任一個按鈕時,請求參數中會包括method=Continue或是method=Checkout,假設是method=Continue好了,LookupDispatchAction會根據它作為value,在訊息資訊檔找到對應的key,然後根據key與getKeyMethodMap()得知


reply to postreply to post
良葛格學習筆記
話題樹型展開
人氣 標題 作者 字數 發文時間
5292 [Struts入門]使用LookupDispatchAction類別 caterpillar 2566 2004-07-27 13:39
4142 Re:[Struts入門]使用LookupDispatchAction類別 yangqingdelphi 224 2004-09-08 14:02
2903 Re:[Struts入門]使用LookupDispatchAction類別 hgawen 424 2005-05-21 12:46
4122 Re:[Struts入門]使用LookupDispatchAction類別 GuanChih 54 2004-09-08 23:53
4122 Re:[Struts入門]使用LookupDispatchAction類別 杰克豌豆 83 2004-09-10 08:55
3605 Re:[Struts入門]使用LookupDispatchAction類別 saxgoden 90 2004-12-15 10:21
3483 Re:[Struts入門]使用LookupDispatchAction類別 caterpillar 175 2004-12-15 19:13
2904 Re:[Struts入門]使用LookupDispatchAction類別 helloworld 356 2005-05-17 12:11
2912 Re:[Struts入門]使用LookupDispatchAction類別 reggie 430 2005-05-17 16:49
2968 Re:[Struts入門]使用LookupDispatchAction類別 vincent_shiu 173 2005-06-02 13:16
2832 Re:[Struts入門]使用LookupDispatchAction類別 hgawen 125 2005-05-21 14:13
» JWorld@TW »  Web Framework » Struts

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8