Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> struts2動態方法調用

struts2動態方法調用

編輯:關於Android編程

本來不想寫關於struts2的學習筆記了,由於感覺關於struts2的理論知識比較簡單,所以才打算不寫,但是在學習過程中,特別是在Myeclipse中編碼練習的時候,遇到的一些問題,因此,自己覺得有必要記錄一下,所以,還是邊學習邊寫博客吧。

動態方法調用指的就是為了解決一個Action對應多個請求的處理,以免Action太多。

動態方法調用有3中方法,分別為:

1、Action的method屬性

2、感歎號方式 !

3、通配符方式

下面將分別進行介紹。

第一種:Action的method屬性完成動態方法調用 不推薦使用

只需要改兩個地方,第一個是在Action類中添加其他的方法。例如:在本例中就是添加了add()和sub()方法。

\

要更改的第二個地方為:更改struts.xml配置文件,例如本例中的struts.xml文件內容如下:

每個Action的結果文件自己添加即可,完成之後,就可以打開浏覽器,並輸入:http://localhost:8080/HelloWorld/addAction.action 就可以看到HelloWorldAction類執行add()方法了。

在實踐過程中,遇到了一個問題:即按照這個流程走下來,原以為在浏覽器中輸入地址就可以看到結果,但是我剛開始並沒有看到,原以為是哪裡錯了,檢查了好久也沒有錯誤,也參考了慕課網上關於struts2的視頻,也查了相關blog資料,感覺流程一模一樣,為什麼會運行不出來了。

最後查找出來的原因是:要重新啟動tomcat服務器,再運行就好了。

感歎號方式 ! 不推薦使用

這種使用method屬性的方式來實現動態方法有一個不好的地方在於:如果只有幾個方法需要被調用,這樣還好,我們只需要在struts.xml文件中,寫幾個類似下面的代碼段。但是,如果有幾百個方法需要被動態調用,那麼用這種方法可能就不適合了,這樣代碼冗余太大,也不便於管理。因此就有了下面的兩種方法:!、通配符的使用,這裡介紹第一種。


        
        /add.jsp          
    

使用感歎號來實現動態方法調用,有兩個地方需要改動,如下:

第一個是Action類中,注意每個方法的返回值

\

第二個是struts.xml文件中:注意result標簽下的name屬性<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPqGjPC9wPg0KPHA+PGltZyBhbHQ9"" src="/uploadfile/Collfiles/20160422/20160422090814121.png" title="\" />

在struts.xml文件中最下面一行代碼特別要注意:這是開啟感歎號可應用於動態方法調用。


待上面更改完成之後,在重啟服務器之後,就可以在浏覽器中輸入:http://localhost:8080/HelloWorld/helloworld!add.action來動態調用Action類中的add方法了。截圖如下:

\
上面就是在浏覽器中輸出的url格式是錯誤的,正確的如下:

通配符方式 推薦使用

雖然上面兩種方法都能夠完成動態方法的調用,但是官方都不推薦使用,通配符這種方法是推薦使用的。下面來介紹介紹。

通配符我們一般都知道,即用 * 來獲取內容。

下面還是看具體的例子。

Action類中的內容如下:

\

struts.xml文件中的內容如下:

上圖代碼中的


使用通配符在url地址中來取得要調用的方法的名稱。
例如:當我們在浏覽器中輸出 http://localhost:8080/HelloWorld/addAction ,則就會調用Action類中的add()方法。

在浏覽器中輸入url後顯示結果如下:

\

多個通配符的使用例子如下:動態的獲取Action類名和方法名:

在浏覽器中輸入url=http://localhost:8080/HelloWorld_add.action.

\

使用通配符來進行動態方法的調用,你始終要保證你的url地址格式要與你在struts.xml文件中使用通配符的格式一致,即要保證使用通配符提取出來的結果是你想要的。

小結

無論是多麼小的一個知識點,都需要我們去實踐,這樣我們的收獲會更多,理解會更深。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved