Struts 二實作類別似ThinkPHP的MVC開發方式

來源:互聯網
上載者:User
Struts 2實作類別似ThinkPHP的MVC開發方式

ThinkPHP是PHP的一個MVC開源架構,Struts 2是Java的MVC開源架構。雖然程式設計語言不同,但是他們都是解決同樣的問題。

用過ThinkPHP的同學應該都知道,ThinkPHP是一個非常簡單的架構,使用起來很舒服。相對來說Struts 2則沒有這麼簡單。

本文介紹如何配置Struts 2,讓它使用起來像ThinkPHP一樣簡單。

在介紹Struts 2之前,首先瞭解一下ThinkPHP的開發方式。

和Struts 2一樣,ThinkPHP也需要用Action來充當控制器(controller),需要頁面來充當視圖(view)。

下面是一個簡單的ThinkPHP工程的目錄結構:


其中Action目錄下就是控制器,其功能和Struts 2的Action類似。Tpl目錄下是html頁面,也就是視圖,類似於jsp頁面的功能。

再看其中一個Action的代碼:

display ();}public function add() {/** * 邏輯代碼... */$this->display ();}public function delete() {/** * 邏輯代碼... */$this->display ();}public function update() {/** * 邏輯代碼... */$this->display ();}}?>
此時在瀏覽器輸入http://localhost/First/update,就可以調用FirstAction的update方法處理請求,再調用Tpl/First/update.html顯示。

也就是說,如果需要加一個功能模組Abc,只需要添加一個AbcAction.class.php,其中加入操作函數def,再在Tpl/Abc檔案夾下建立一個檔案名稱和函數名稱一致的def.html檔案,下面就可以開發邏輯和頁面了,而且直接就可以用http://localhost/Abc/def訪問,非常方便。整個項目很清晰,想找的某個http地址對應的Action的函數以及html檔案也非常容易。

而Struts 2由於有struts.xml設定檔,如果加入一個功能模組,除了需要加入Action類和jsp頁面,還需要在struts.xml中配置這個Action對應的http地址、對應的Action中的方法、以及對應的jsp檔案。而如果想通過http地址找到對應的Action中的方法和jsp檔案,也需要查看struts.xml中的配置。

在Struts 2的使用中,約定大於配置是個很重要的原則。ThinkPHP的開發方式就是一個比較好的約定。下面就介紹如何用Struts 2實作類別似ThinkPHP的開發方式。

首先是struts.xml檔案的配置:

/Tpl/{1}/{2}.jsp
實作類別似ThinkPHP的開發方式,需要在struts.xml中用到Wildcards,也就是萬用字元。其中name="/*/*"匹配http地址。第一個*是Action的類名:class="com.xxg.action.{1}Action";第二個*是Action中方法的名稱:method="{2}",另外還是jsp的檔案名稱:/Tpl/{1}/{2}.jsp。

這裡設定了:

表示action的name中允許出現斜杠"/"。

下面是這個項目的目錄結構:


其中一個Action的代碼:

package com.xxg.action;import com.opensymphony.xwork2.ActionSupport;public class FirstAction extends ActionSupport {public String show() {/** * 邏輯代碼... */return SUCCESS;}public String add() {/** * 邏輯代碼... */return SUCCESS;}public String delete() {/** * 邏輯代碼... */return SUCCESS;}public String update() {/** * 邏輯代碼... */return SUCCESS;}}
如此一來,在開發的過程中,所要做的就和ThinkPHP類似,加入Action,加入對應的方法,再添加一個和方法名同名的jsp檔案,直接存取地址:http://localhost/Action名稱/方法名稱就可以直接存取,不再需要向struts.xml檔案中添加action。另外,通過http地址也很容易找到對應的Action其中的方法以及對應的jsp檔案,也不再需要查詢struts.xml。


作者:叉叉哥 轉載請註明出處:http://blog.csdn.net/xiao__gui/article/details/21073605



2樓JPFRMD3小時前
很好的文章,下次好好看看
1樓5iasp4小時前
不錯,很靈活.
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.