<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 15,  comments - 8,  trackbacks - 0
    java.lang.Object

        org.apache.struts.action.Action

            org.apache.struts.actions.DispatchAction

                org.apache.struts.actions.LookupDispatchAction(Struts1.
    1)

                org.apache.struts.actions.EventDispatchAction(Struts1.
    2.9)

                org.apache.struts.actions.MappingDispatchAction(Struts1.
    2)


    DispatchAction
    public abstract class DispatchAction extends Action


    這是一個抽象的Action,它會根據request 中的parameter來執行相應的方法。通個這個Action類可以將不同的Action集中到一個Action文件中來。

    struts-config.xml:


    <action path="/subscription" type="org.example.SubscriptionAction" name="subscriptionForm"  scope="request" input="/subscription.jsp" parameter="method"/>

    在Action中要有相應的方法:


    public class SubscriptionAction extends DispatchAction {
       
        
    public ActionForward delete(ActionMapping mapping, ActionForm form,
                                    HttpServletRequest request,
                                    HttpServletResponse response) 
    throws Exception {}
        
        
    public ActionForward insert(ActionMapping mapping, ActionForm form,
                                    HttpServletRequest request,
                                    HttpServletResponse response) 
    throws Exception {}
        
        
    public ActionForward update(ActionMapping mapping, ActionForm form,
                                    HttpServletRequest request,
                                    HttpServletResponse response) 
    throws Exception {}
        
    }

    然后可以通過這樣的方法來訪問你的程序:

    http://localhost:8080/myapp/subscription.do?method=delete

    http://localhost:8080/myapp/subscription.do?method=insert

    http://localhost:8080/myapp/subscription.do?method=update

    如果parameter中參數為空,則調用Action中的unspecified方法



    LookupDispatchAction
    public abstract class LookupDispatchAction extends DispatchAction


    通過這個Action抽象類繼承DispatchAction,它的相應方法的執行由ActionMapping中parameter屬性決定。每個動作實際上就是<html:submit>標簽的property屬性值。它適合在一個form中有很多按鈕,按不同的按鈕則執行不同的操作。

    struts-config.xml:


    <action path="/subscription" type="org.example.SubscriptionAction" name="subscriptionForm" scope="request"
    input
    ="/subscription.jsp" parameter="method"/>

    ApplicationResources.properties:

    button.add=Add Record
    button.delete=Delete Record

    JSP:

    <%@ page pageEncoding="GBK"%>
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
    <html>
      
    <head>
        
    <title>多提交演示</title>
      
    </head>
      
    <body>
        
    <html:form action="subscription"> 
          
    <html:submit property="method"> 
            
    <bean:message key="button.add"/> 
          
    </html:submit> 
          
    <html:submit property="method"> 
            
    <bean:message key="button.delete"/> 
          
    </html:submit> 
        
    </html:form>
      
    </body> 
    </html>

    在Action中必須實現getKeyMethodMap方法:

    public class SubscriptionAction extends LookupDispatchAction {

        
    protected Map getKeyMethodMap() {
            Map map 
    = new HashMap();
            map.put(
    "button.add""add");
            map.put(
    "button.delete""delete");
            
    return map;
        }

        
    public ActionForward add(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) 
    throws Exception {}

        
    public ActionForward delete(ActionMapping mapping,
                                    ActionForm form,
                                    HttpServletRequest request,
                                    HttpServletResponse response) 
    throws Exception {}

    }


    EventDispatchAction
    public class EventDispatchAction extends DispatchAction


    通過這個Action抽象類繼承DispatchAction,它的相應方法的執行由ActionMapping中parameter屬性指定多個動作,中間用逗號(,)分隔。每個動作實際上就是<html:submit>標簽的property屬性值。它適合在一個form中有很多按鈕,按不同的按鈕則執行不同的操作。

    struts-config.xml:

    (parameter中的"recalc=recalculate"意思為<html:submit>標簽的property屬性值為recalc調用recalculate方法,出于安全考慮能夠隱藏后臺的業務方法名。"defaule=save"這是可選的,沒有配置property屬性的<html:submit>標簽將調用defaule中設置的方法名,如果defaule沒有指定任何參數,則調用Action中的unspecified方法)


    <action path="/subscription" type="org.example.SubscriptionAction" name="subscriptionForm" scope="request"
    input
    ="/subscription.jsp" parameter="save,back,recalc=recalculate,default=save"/>


    JSP:

    <%@ page pageEncoding="GBK"%>
    <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
    <html>
      
    <head>
        
    <title>多提交演示</title>
      
    </head>
      
    <body>           
        
    <html:form action="subscription">
          
    <html:submit property="save" value="保存"/>
          
    <html:submit property="back" value="后退"/>
          
    <html:submit property="recalc" value="重新計算"/>
        
    </html:form>  
      
    </body> 
    </html>

    在Action中要有相應的方法:


    public class SubscriptionAction extends LookupDispatchAction {

        
    public ActionForward save(ActionMapping mapping,
                                  ActionForm form,
                                  HttpServletRequest request,
                                  HttpServletResponse response) 
    throws Exception {}

        
    public ActionForward back(ActionMapping mapping,
                                  ActionForm form,
                                  HttpServletRequest request,
                                  HttpServletResponse response) 
    throws Exception {}

        
    public ActionForward recalculate(ActionMapping mapping,
                                         ActionForm form,
                                         HttpServletRequest request,
                                         HttpServletResponse response) 
    throws Exception {}

    }


    MappingDispatchAction
    public class MappingDispatchAction extends DispatchAction


    它的相應方法的執行由ActionMapping中parameter名決定,注意這里和LookupDispatchAction不同,LookupDispatchAction的相應方法的執行由ActionMapping中parameter屬性決定。

    struts-config.xml:


    <action path="/createSubscription" type="org.example.SubscriptionAction" parameter="create"> 
          
    <forward name="success" path="/createSubscription.jsp"/> 
    </action>
    <action path="/editSubscription" type="org.example.SubscriptionAction" parameter="edit"> 
          
    <forward name="success" path="/editSubscription.jsp"/> 
    </action>
    <action path="/saveSubscription" type="org.example.SubscriptionAction" parameter="save"
    name
    ="subscriptionForm" validate="true" input="/editSubscription.jsp" scope="request"> 
          
    <forward name="success" path="/savedSubscription.jsp"/> 
    </action>
    <action path="/deleteSubscription" type="org.example.SubscriptionAction" name="subscriptionForm"
    scope
    ="request" input="/subscription.jsp" parameter="delete"> 
          
    <forward name="success" path="/deletedSubscription.jsp"/> 
    </action>
    <action path="/listSubscriptions" type="org.example.SubscriptionAction" parameter="list"> 
          
    <forward name="success" path="/subscriptionList.jsp"/>
    </action>

    在Action中要有相應的方法:

    public class SubscriptionAction extends MappingDispatchAction {

        
    public ActionForward create(ActionMapping mapping, ActionForm form,
                                    HttpServletRequest request,
                                    HttpServletResponse response) 
    throws Exception {}


        
    public ActionForward edit(ActionMapping mapping, ActionForm form,
                                  HttpServletRequest request,
                                  HttpServletResponse response) 
    throws Exception {}


        
    public ActionForward save(ActionMapping mapping, ActionForm form,
                                  HttpServletRequest request,
                                  HttpServletResponse response) 
    throws Exception {}


        
    public ActionForward delete(ActionMapping mapping, ActionForm form,
                                    HttpServletRequest request,
                                    HttpServletResponse response) 
    throws Exception {}


        
    public ActionForward list(ActionMapping mapping, ActionForm form,
                                  HttpServletRequest request,
                                  HttpServletResponse response) 
    throws Exception {}

    }

    然后可以通過這樣的方法來訪問你的程序

    http://localhost:8080/myapp/create.do

    http://localhost:8080/myapp/edit.do

    http://localhost:8080/myapp/save.do

    http://localhost:8080/myapp/delete.do

    http://localhost:8080/myapp/list.do

    如果parameter中參數為空,則調用Action中的unspecified方法

    posted on 2009-02-25 17:42 lvq810 閱讀(943) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 免费观看午夜在线欧差毛片| 最近2019中文字幕mv免费看| 国产午夜亚洲精品午夜鲁丝片| 亚洲a∨无码一区二区| 麻豆国产入口在线观看免费| 亚洲熟妇成人精品一区| 最近的中文字幕大全免费版| 亚洲国产综合AV在线观看| 暖暖免费高清日本中文| 日韩国产欧美亚洲v片| 亚洲成A∨人片天堂网无码| 一级做a爰全过程免费视频毛片| 亚洲一区视频在线播放| 久久国产一片免费观看| 亚洲av日韩av激情亚洲| 亚洲va在线va天堂va四虎 | 久久久无码精品亚洲日韩京东传媒| baoyu777永久免费视频 | 亚洲AV无码码潮喷在线观看| 无码av免费一区二区三区试看| 亚洲精品在线不卡| 丁香花在线观看免费观看| 国产午夜亚洲精品不卡| 亚洲日本va在线视频观看| 99精品视频在线免费观看| 激情综合亚洲色婷婷五月| 99在线在线视频免费视频观看| 亚洲熟妇无码久久精品| 国产又黄又爽又猛的免费视频播放 | jjzz亚洲亚洲女人| 久久大香伊焦在人线免费| 又粗又硬又黄又爽的免费视频 | 美女内射毛片在线看免费人动物| 亚洲中文字幕一二三四区苍井空| 免费永久国产在线视频| 久久99青青精品免费观看| 亚洲另类自拍丝袜第五页| 亚洲精品国产精品乱码视色| 24小时日本在线www免费的| 成在人线av无码免费高潮水| 亚洲a级成人片在线观看|