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

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

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

    資料整理

     

    Sturts ---DispatchAction的使用

    Struts心得--DispatchAction使用日記

    Struts1.1發(fā)布了這么長(zhǎng)時(shí)間了,我才剛剛開始系統(tǒng)地學(xué)習(xí)Struts的相關(guān)知識(shí),經(jīng)過前一陣潛心研究,對(duì)Struts1.1中已有的類DispatchAction有了進(jìn)一步的認(rèn)識(shí)。我將在這里總結(jié)一下,希望能對(duì)大家有所幫助。
      
      在1.0版本中我們通常都是用execute方法來完成我們對(duì)業(yè)務(wù)邏輯的處理及頁(yè)面的轉(zhuǎn)發(fā)。通常在一個(gè)Action中我們都只能夠完成一種業(yè)務(wù)邏輯的操作。如果要是完成多個(gè)業(yè)務(wù)邏輯(比如:添加、刪除等)功能相近的業(yè)務(wù)邏輯我們就沒有辦法了么?答案是否定的,我們可以通過在頁(yè)面中定義一個(gè)隱藏變量,在不同的頁(yè)面要求處理不同的業(yè)務(wù)邏輯的時(shí)候我們可以賦予這個(gè)變量不同的值,并在execute方法中通過對(duì)變量值的判斷來完成不同的業(yè)務(wù)邏輯操作。
      
      舉例來說,我們首先在頁(yè)面中定義一個(gè)隱藏變量。
      
      <;html:hidden property="operAt"/>
      
      然后定義一個(gè)JavaScript函數(shù),我們可以在通過點(diǎn)擊提交按鈕的時(shí)候,在函數(shù)體里面修改它的值。
      
      <;SCRIPT>
      
      function set(key) {
      
      with(document.forms[0]){
      
      operAt.value=key;
      
      }
      
      }
      
      <;/SCRIPT>
      
      當(dāng)我們點(diǎn)擊提交按鈕便觸發(fā)該事件,修改變量的值。
      
      <;html:submit onclick="set('save');">SAVE<;/html:submit>
      
      那我們?cè)诤笈_(tái)execute中又如何處理相關(guān)邏輯呢?
      
      String operAt = myForm.getOperAt();
      
      if (operAt.equals("create")) { ……
      
      if (operAt.equals("save")) { ……
      
      很簡(jiǎn)單吧!雖然說這樣做我們可以實(shí)現(xiàn)多個(gè)業(yè)務(wù)邏輯在同一個(gè)Action中實(shí)現(xiàn),可是帶來的代價(jià)便是代碼的冗長(zhǎng),不易理解。
      
      下面我們就要介紹一下DispatchAction類了。它是Action的一個(gè)子類,它可以實(shí)現(xiàn)多個(gè)業(yè)務(wù)邏輯在同一個(gè)Action當(dāng)中的實(shí)現(xiàn),而上面的例子在DispatchAction中也就變成了下面的形式:
      
      public ActionForward create(
      
      ActionMapping mapping,
      
      ActionForm form,
      
      HttpServletRequest request,
      
      HttpServletResponse response)
      
      throws Exception { ……
      
      public ActionForward save(
      
      ActionMapping mapping,
      
      ActionForm form,
      
      HttpServletRequest request,
      
      HttpServletResponse response)
      
      throws Exception { ……
      
      每一種業(yè)務(wù)邏輯都能在DispatchAction當(dāng)中找到對(duì)應(yīng)的方法。那么我們?nèi)绾稳?shí)現(xiàn)這樣的調(diào)用呢?DispatchAction中對(duì)struts-config.xml的配置比一般的Action配置稍顯麻煩,舉例來講:
      
      <;action path="/telConsle" type="com.meng.action.TelConsleDispatch"
      
      name="telForm" scope="request" validate="false" parameter="method"/>
      
      我們?cè)谶@里指定了parameter的值為method,而當(dāng)我們請(qǐng)求Action的時(shí)候我們必須指定method的值來確定去我們想要調(diào)用哪個(gè)Action方法。如:
      
      http://localhost:8080/tsss/telConsle.do?method=save
      
      顯然,通過顯示鏈接指定參數(shù)值的方法可以達(dá)到我們調(diào)用方法的目的。然而我們?nèi)绻幌腼@示調(diào)用的話我們應(yīng)該怎樣處理呢?還記得前面講過的方法么?我們?cè)陧?yè)面中定義一個(gè)隱藏的變量,然后通過對(duì)變量的賦值來確定我們來確定我們將要執(zhí)行的業(yè)務(wù)方法。在這里我們可不可以一樣這樣使用呢?
      
      答案是肯定的,我們當(dāng)然可以通過定義一個(gè)類似于<;html:hidden property="operAt"/>的變量,只要對(duì)該變量賦上對(duì)應(yīng)DispatchAction中的方法的值來確定我們要調(diào)用的業(yè)務(wù)方法。然而筆者比提倡用Struts標(biāo)簽來定義這樣的隱含的變量,因?yàn)镾truts標(biāo)簽為動(dòng)態(tài)標(biāo)簽,它可能需要在FormBean中定義該屬性的get和set方法,而在parameter中定義的值不需要在FormBean當(dāng)中定義get和set方法。筆者建議用html的標(biāo)準(zhǔn)標(biāo)簽<;input>來定義該隱藏變量。因?yàn)樵摌?biāo)簽為靜態(tài)標(biāo)簽,如果我們?cè)撚肧truts標(biāo)簽的話可能導(dǎo)致頁(yè)面出錯(cuò)。


    我們?cè)陧?yè)面上有多個(gè)按鈕
    我們就用那么DispatchAction
    控制我們想要做的事
    我們先在頁(yè)面用其所長(zhǎng)<html:hidden property="method " value=""/>來隱葳變量
    我們用javascript告訴我們要做什么事也就是用戶點(diǎn)擊了那個(gè)鈕?\\
    我想我們用這個(gè)就有一點(diǎn)好處就是頁(yè)面有javaxcript提示出來就是有一點(diǎn)人性化
    我相我們用他的子類會(huì)更好些
    我認(rèn)為我們用了javacript以后我們的頁(yè)面就多了很多代碼量
    我們用lookupdispacthaction也行

    posted on 2006-08-21 13:32 謝瑋 閱讀(449) 評(píng)論(0)  編輯  收藏 所屬分類: 流行框架Web

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(1)

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評(píng)論

    主站蜘蛛池模板: 免费福利在线播放| 亚洲一级毛片免费看| 四虎永久免费观看| 国产精品亚洲天堂| 国产免费久久精品| 处破女第一次亚洲18分钟| 蜜桃精品免费久久久久影院| 亚洲综合av一区二区三区不卡 | 国产情侣激情在线视频免费看| 亚洲第一福利网站| 永久看日本大片免费35分钟| 亚洲精品无码久久久久久久| 国产福利在线观看免费第一福利| 国产精品高清视亚洲精品| 在线免费视频一区| h片在线观看免费| 亚洲国产精品自在线一区二区| 麻豆高清免费国产一区| 亚洲中文无码永久免| 又色又污又黄无遮挡的免费视| 国产va免费观看| 亚洲男人天堂2017| 最近中文字幕无免费视频| 美女无遮挡免费视频网站| 国产亚洲av人片在线观看| 在线a免费观看最新网站| 亚洲精品中文字幕| 自拍偷自拍亚洲精品被多人伦好爽| 男人进去女人爽免费视频国产| 亚洲va在线va天堂成人| 亚洲不卡AV影片在线播放| 久久国产乱子伦精品免费强| 亚洲三级在线免费观看| 免费成人在线观看| 久久99国产综合精品免费| 丰满亚洲大尺度无码无码专线 | 亚洲av永久无码嘿嘿嘿| 日本特黄特色aa大片免费| 久久九九全国免费| 老司机亚洲精品影院在线观看| 亚洲a一级免费视频|