posts - 297,  comments - 1618,  trackbacks - 0
              說明:本文翻譯自struts自帶的doc,路經(jīng)為:struts-2.0.8-all\struts-2.0.8\docs\docs\selecting-results.html

              在編寫Action這一章節(jié)中,我們創(chuàng)建了一個(gè)Logon類來測試輸入。在本章中,我們將使這個(gè)測試的結(jié)果起作用。

          一.             選擇一個(gè)“Input”結(jié)果

               在一個(gè)Action執(zhí)行一個(gè)請(qǐng)求后,一個(gè)提供用來作為這個(gè)請(qǐng)求回應(yīng)的結(jié)果被選擇。這個(gè)結(jié)果可以簡單的定向到一個(gè)HTML頁面、一個(gè)JSP頁面、一個(gè)FreeMaker或一個(gè)Velocity模板、或者這個(gè)結(jié)果可能構(gòu)造一個(gè)PDF或某些更加復(fù)雜的輸出(例如JasperReports)。在一個(gè)action映射中可能有多個(gè)可選的結(jié)果。為了指明那一個(gè)被選擇,Action類返回一個(gè)與正確結(jié)果相對(duì)應(yīng)的名字。

          二.             代碼

          struts.xml的代碼如下所示:

          <action name="Logon" class="tutorial.Logon">
           <result type="redirect-action">Menu</result>
           <result name="input">/tutorial/Logon.jsp</result>
          </action>

          三.             代碼是如何工作的?

             1. 如果你在表單中輸入usernamepassword屬性,Logon Action將會(huì)返回“success”;

             2. 如果你其中一者或兩者都沒有輸入值,Logon Action將返回“input”,框架將會(huì)使用Logon.jsp作為回應(yīng)。

              在Hello World章節(jié)中,我們的結(jié)果使用了默認(rèn)的類型:DispatcherDispatcher定向到另外的web資源。其它種類的視圖能夠被用來指明不同的結(jié)果類型。

               Logon映射為success(默認(rèn)的返回值)使用了一種不同的返回類型。“redirect-action”使用Action的名字作為參數(shù),接著使客戶端定向到一個(gè)新的action

          四.             使用一個(gè)Stub

               當(dāng)我們開發(fā)web應(yīng)用程序的時(shí)候,我們常常需要進(jìn)行forward引用——我們需要引用到一個(gè)我們還沒有開始寫的action。例如,在文章的第一部分中,下一步是跳轉(zhuǎn)到“Menu”頁面。如果我們成功登錄,我們就沒有地方去了,因?yàn)?#8220;Menu”尚不存在。

               解決這種問題的方法是創(chuàng)建一個(gè)StubMenu”頁。

               Menu.jsp的代碼如下:

          <html>
          <head><title>Missing Feature</title></head>
          <body>
          <p>
              This feature is under construction.
              Please try again in the next interation.
          </p>
          </body>
          </html>

              這段代碼是如何工作的呢?

              1. 當(dāng)?shù)卿?/span>class返回“Menu”時(shí),框架將會(huì)將其與通配符映射對(duì)應(yīng)起來;

              2. 框架現(xiàn)在將會(huì)返回一個(gè)stub的“Menu.jsp”。

              說明:如果你沒有使用通配符,另一種注入一個(gè)丟失頁面的方法就是指定一個(gè)<action-default-ref>元素。

          五.             包括一個(gè)缺失頁面

               如果你頁到頁的建造一個(gè)應(yīng)用程序,建立一個(gè)標(biāo)準(zhǔn)的缺失頁面時(shí)對(duì)應(yīng)的標(biāo)準(zhǔn)頁面是非常必要的。Menu.jsp的代碼如下:

            <%@ taglib prefix="s" uri="/struts-tags" %>
            <s:include value="Missing.jsp" />

               這段代碼是如何工作的呢?

              當(dāng)需要展現(xiàn)Menu.jsp的時(shí)候,它將會(huì)包括標(biāo)準(zhǔn)的Missing.jsp的內(nèi)容。

          六.             需要記住的東西

               本框架提供多種返回類型。一個(gè)Action能夠通過名字選擇正確的返回結(jié)果,而不用知道到底是哪一種返回類型。

          下一章:驗(yàn)證輸入值
          上一章:編寫Action

          posted on 2007-07-31 12:36 阿蜜果 閱讀(2269) 評(píng)論(3)  編輯  收藏 所屬分類: Struts2


          FeedBack:
          # re: Struts2學(xué)習(xí)進(jìn)階(五)——選擇結(jié)果
          2007-07-31 23:22 | -274°C
          老姐,開始發(fā)力了。  回復(fù)  更多評(píng)論
            
          # re: Struts2學(xué)習(xí)進(jìn)階(五)——選擇結(jié)果
          2007-08-02 15:26 | 阿蜜果
          是啊,安靜太久了,想發(fā)發(fā)威!!!
          :)  回復(fù)  更多評(píng)論
            
          # re: Struts2學(xué)習(xí)進(jìn)階(基礎(chǔ)篇五)——選擇結(jié)果
          2007-08-23 16:24 | passer
          <action-default-ref>

          上面這個(gè)tag怎么加在struts.xml中?  回復(fù)  更多評(píng)論
            
          <2007年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

                生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來如此。
                我的作品:
                玩轉(zhuǎn)Axure RP  (2015年12月出版)
                

                Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
                
               Struts2+Hibernate3+Spring2   (2010年5月出版)
               

          留言簿(263)

          隨筆分類

          隨筆檔案

          文章分類

          相冊(cè)

          關(guān)注blog

          積分與排名

          • 積分 - 2296332
          • 排名 - 3

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 如皋市| 东城区| 苍南县| 溧水县| 慈利县| 泉州市| 伊金霍洛旗| 芮城县| 闽清县| 南安市| 渑池县| 县级市| 清流县| 大连市| 石家庄市| 天津市| 尚义县| 江城| 高陵县| 罗源县| 邯郸县| 平远县| 舒兰市| 大方县| 南乐县| 宝坻区| 德江县| 望奎县| 犍为县| 房产| 望都县| 郑州市| 延寿县| 沅江市| 正宁县| 呼伦贝尔市| 麻栗坡县| 西贡区| 宝坻区| 耒阳市| 石河子市|