亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種在Struts2下自動生成配置文件的方法

文檔序號:6426018閱讀:223來源:國知局
專利名稱:一種在Struts 2下自動生成配置文件的方法
技術領域
本發(fā)明涉及web程序開發(fā)領域,更為具體地,涉及一種在MrutS 2下自動生成配置文件的方法。
背景技術
Struts2 是基于 WEB 的 MVC (Model-View-Controller)框架,在 Mruts 2 中,模型 (Model),視圖(View)和控制器(Controller)分別由 Action,Result 和 FilterDispatcher 實現,更為具體的,Model層實現系統(tǒng)中的業(yè)務邏輯,通常可以用JavaBean或EJB來實現, View層用于與用戶的交互,通常用JSP來實現,Controller層是Model與View之間溝通的橋梁,它可以分派用戶的請求并選擇恰當的視圖以用于顯示,同時它也可以解釋用戶的輸入并將它們映射為模型層可執(zhí)行的操作。換言之,控制器(Controller)的作用是映射用戶的請求到合適的Action,這里,FilterDispatcher就做控制器的工作。模型(Model)包括數據和業(yè)務邏輯,在Mruts 2中,模型由Action組件實現。Mruts 2中有配置文件主要負責管理Mruts 2框架的業(yè)務控制器Action,負責把不同的url響應分發(fā)到不同的Action, 因此每一個Action都需要在配置文件中對應一條配置記錄。目前,對于在Mruts 2框架下生成配置文件的方式有兩種1、手動方式手動為每一個Action在配置文件中寫一條配置。2、圖形化方式在MyEclipse中有應用,通過圖形化編輯環(huán)境,用戶只需雙擊并填寫相應參數既可自動生成配置對應的一條配置。但是上述的這兩種方式,都需要單獨為每條Action進行配置,這無疑會增加編程人員的工作量,并且也極其使得在配置過程中出錯,從而造成編程人員的工作效率降低。

發(fā)明內容
本發(fā)明實施例的目的在于提供一種在Mruts 2下自動生成配置文件的方法,其能夠動態(tài)的自動生成Mruts 2配置文件,例如在增加一個Action后,無需手動地在配置文件中增加一條配置記錄,Web應用程序會自動在配置文件中增加相應的配置,這樣,一定程度上減輕了編程人員的工作量,除此之外,還可以避免一些由編程人員在手動修改配置的過程中出現的不必要的錯誤。基于以上,本發(fā)明實施例的目的是通過以下技術方案實現的一種在Mruts 2下自動生成配置文件的方法,包括Ajf Mruts 2部署在Web服務器上;B、在Web應用程序每次部署時,調用配置文件生成類,用以自動生成配置文件。優(yōu)選地,在所述步驟B中,所述配置文件生成類包括Bi、確定自動生成的配置文件的路徑,以及需要遍歷的業(yè)務邏輯方法文件的根路徑;B2、遍歷所有業(yè)務邏輯類以及業(yè)務邏輯類內的業(yè)務邏輯方法,并根據不同的業(yè)務邏輯類及方法生成與之對應的從配置文件;B3、將所述從配置文件寫入配置文件。更為優(yōu)選地,在所述步驟B2中,包括B21、生成package節(jié)點,其中,對步驟Bl中的業(yè)務邏輯方法文件的根路徑進行遍歷,根路徑以及根路徑下的每一個Java包對應一個package節(jié)點;B22、生成Action節(jié)點,其中,每個package節(jié)點內的Action節(jié)點都是根據其對應 Java包內的類以及類內的所有方法生成的。更為優(yōu)選地,在所述步驟B22中,對于不同的Struts2返回值類型生成不同的 Action 節(jié)點 ο更為優(yōu)選地,所述返回值類型為plainText、dispatcher。更為優(yōu)選地,所述Action節(jié)點的name屬性和method屬性為對應的業(yè)務邏輯方法的名稱,其class屬性為對應的業(yè)務邏輯方法所在類的全路徑名。優(yōu)選地,所述Action節(jié)點的name屬性是所述Java包內的相應類的名稱,所述 class屬性是Java包內的相應類的全路徑名。優(yōu)選地,在所述步驟B中,在Web應用程序每次部署時,重寫過濾器的初始化方法 init,并在過濾器的初始化方法init中,調用配置文件生成類。優(yōu)選地,在所述步驟B中,在Web應用程序每次部署時,重寫krvlet的初始化方法init,并在krvlet的初始化方法init中,調用配置文件生成類。優(yōu)選地,在所述步驟B中,在Web應用程序每次部署時,重寫監(jiān)聽器Listener的 contex nitialized方法,并在監(jiān)聽器Listener的contex nitialized方法中,調用配置文件生成類。由上述本發(fā)明實施例的技術方案可以看出,采用本發(fā)明實施例提供的在Mruts 2 下自動生成配置文件的方法,當編程人員每增加一個Action即業(yè)務邏輯方法后或web應用程序在每次Action有改動后,程序都能夠自動遍歷檢測出該新增加的或修改的Action,并自動添加與此Action相對應的配置語句到配置文件中,因此,一定程度上可以減輕編程人員的工作量,除此之外,還可以避免一些由編程人員在手動修改配置的過程中出現的不必要的錯誤。


圖1是URL、配置文件以及Action三者之間的的相互關系圖;圖2是本發(fā)明實施例提供的在Mruts 2下自動生成配置文件的方法的流程圖;圖3是本發(fā)明實施例提供的配置文件生成類的處理方法流程圖;圖4是本發(fā)明實施例提供的生成從配置文件的方法流程圖。本發(fā)明目的的實現、功能特點及優(yōu)異效果,下面將結合具體實施例以及附圖做進一步的說明。
具體實施例方式下面結合附圖和具體實施例對本發(fā)明所述技術方案作進一步的詳細描述,以使本領域的技術人員可以更好的理解本發(fā)明并能予以實施,但所舉實施例不作為對本發(fā)明的限定。參考圖2,依照本發(fā)明一實施例提供的在Mruts 2下自動生成配置文件的方法, 其技術方案為一種在Mruts 2下自動生成配置文件的方法,其包括Ajf Mruts 2部署在Web服務器上;B、在Web應用程序每次部署時,調用配置文件生成類,用以自動生成配置文件。采用上述技術方案,編程人員每增加一個Action即業(yè)務邏輯方法后或web應用程序在每次Action有改動后,程序都可以自動調用配置文件生成類,從而自動的配置Mruts 2的配置文件。更為具體的,如圖3所示,在所述步驟B中,所述配置文件生成類包括Bi、確定自動生成的配置文件的路徑,以及需要遍歷的業(yè)務邏輯方法文件的根路徑;B2、遍歷所有業(yè)務邏輯方法,并根據不同的業(yè)務邏輯方法生成與之對應的從配置文件;B3、將所述從配置文件寫入配置文件。其中,所述業(yè)務邏輯方法是指具體處理URL請求的Action,其中,URL、配置文件以及Action三者之間的關系如圖1所示,界面發(fā)送的URL請求,先由配置文件攔截處理,根據配置文件中的相關配置,不同的URL請求被分發(fā)給不同的Action進行處理,Action處理完畢后將處理結果response返回給界面。由于Mruts 2的配置文件內定義了 Mruts 2的系列Action,定義Action時,指定該Action的實現類實現方法,并定義該Action處理結果與視圖資源之間的映射關系。具體的,Action處理結果有幾種返回類型,不同的返回類型需要進行不同的配置。且對于配置文件其有package節(jié)點,一個package節(jié)點表示一個包配置,包用來管理Action和攔截器等,每個包就是多個Action以及多個攔截器的集合。package節(jié)點可以把一些Action節(jié)點組成一個邏輯單元,name屬性是package節(jié)點的必要元素。同一個W^eb 應用有可能需要出現同名的Action,所以Mruts 2中以命名空間的方式來管理Action,同一個命名空間里不能有同名的Action,不同的命名空間里可以有同名的Action。Struts 2 不支持給單獨的Action設置命名空間,而是通過包指定namespace屬性來為包下面的所有 Action指定共同的命名空間,據此,依照圖4所示,在所述步驟B2中,其主要包括如下處理步驟B21、生成package節(jié)點,其中,對步驟Bl中的業(yè)務邏輯方法文件的根路徑進行遍歷,根路徑以及根路徑下的每一個Java包對應一個package節(jié)點,注意,這里根路徑本身也對應一個package節(jié)點;作為業(yè)務邏輯方法以處理相應URL請求的Action,在代碼上實際表現為一個普通 Java類,Java語言中也有包package的概念,本文中對于每個Java包都生成一個package 節(jié)點,而這個Java包下的所有Java類所生成的Action配置,都成為這個package節(jié)點的子節(jié)點,即同一個Java包下的類,在配置文件中都會對應到相同的package節(jié)點內。不同的package節(jié)點要對應不同的name屬性以及namespace屬性,namespace屬性值需要有一定的規(guī)律,以方便對Action的調用,因為調用一個Action,除了需要知道Action的name屬性,還需要知道其所在package節(jié)點的namespace屬性值。對步驟Bl中的業(yè)務邏輯方法文件的根路徑進行遍歷,根路徑下的每一個Java包對應一個package節(jié)點。例如Java包的全路徑為“E: \pl\p2\p3\p4”;步驟Bl中的Action 文件即業(yè)務邏輯方法文件的根路徑為“E:\pl\p2”,那么生成的package節(jié)點的namespace 屬性為“/p3/p4”,生成的package節(jié)點的name屬性為一個⑶ID和任意字符串的組合。根路徑本身也對應一個package節(jié)點,其namespace屬性為“/”,其name屬性為一個⑶ID和任意字符串的組合。B22、生成Action節(jié)點,其中,每個package節(jié)點內的Action節(jié)點都是根據其對應 Java包內的類以及類內的所有方法生成的。在具體操作過程中,在所述步驟B22中,針對根據與package節(jié)點相對應的Java 包內的類內的所有方法生成Action節(jié)點的方式,對于不同的返回值類型生成不同的 Action節(jié)點。其中,所述返回值類型可以為plainTexldispatcher這兩種類型,除此之外, 還包括其他返回值類型,這里不作一一贅述。對于返回值類型為PlainText的Action方法,根據此方法具體返回的文本的格式也可以加以區(qū)分,例如json格式、xml格式。更為優(yōu)選地,所述Action節(jié)點的name屬性和method屬性為對應的業(yè)務邏輯方法的名稱,其class 屬性為對應的業(yè)務邏輯方法所在類的全路徑名。下面將以上述兩種返回值類型分別舉一實施例予以介紹(1)對于返回值類型是plainText的方法,都以‘txt’開頭,當然也可以是任意別的標識,這個可以根據需要自行定義。遍歷所有以‘txt’開頭的方法生成返回值類型是plainText的Action節(jié)點,其中,所述Action節(jié)點的name屬性為對應的返回值類型是 PlainText的方法的名稱,method屬性也為該方法的名稱,class屬性是該方法所在類的全路徑名。其子節(jié)點result的type屬性為‘plainText’,name屬性根據實際情況設置。如
下所示
〈Action name="txt\ersion" method="txtVersion" class="com.zn.test.Actions. SecureAction ">
〈result name="success" type="plainText"></result> 〈/Action〉_(2)對于返回值類型是plainText的方法,如果返回的文本格式是json格式,都以‘json’開頭,同樣也可以是任意別的標識。遍歷所有以‘json’開頭的方法生成返回值類型是‘plainText,的Action節(jié)點,其中,所述Action節(jié)點的name屬性為對應的業(yè)務邏輯方法的名稱,method屬性也為該方法的名稱,class屬性是該方法所在類的全路徑名。其子節(jié)點result的type屬性為‘plainText’,其name屬性根據實際情況設置。如下所示
〈Action name="jsonlogin" method="jsonLogin" class="com.zn.test.Actions.SecureAction">
<result name="success" type="plainText"></result> </Action>_(3)對于返回值類型是plainText的方法,如果返回的文本格式是xml格式,都以 ‘ml’開頭,也可以是任意別的標識,遍歷所有以‘xml’開頭的方法生成返回值類型是xml 的Action節(jié)點。其中,所述Action節(jié)點的name屬性為對應方法的名稱,method屬性也為對應方法的名稱,class屬性是方法所在類的全路徑名。其子節(jié)點result的type屬性為 iPlainText', name屬性根據實際情況決定。如下所示
〈Action name="xmllogin" method="xmlLogin" class=""com.zn.test.Actions.SecvireAction ">
<result name="success" type="plainText"></result> </Action>_(4)對于返回值類型是dispatcher的方法,都以‘page’結尾,當然也可以是任意別的標識,遍歷所有以‘page’結尾的方法生成返回值類型是dispatcher的Action節(jié)點。 其中,所述Action節(jié)點的name屬性為對應方法的名稱,method屬性也為方法的名稱,class 屬性是方法所在類的全路徑名,其子節(jié)點result的name屬性根據實際情況決定。如下所示
<Action name="loginpage" method="loginPage" class="com.zn test. Actions.SecureAction">
<result>/main/loginpage.jsp</result> </Action>_同理,可以其他返回值類型的方法,也可以采用上述方式進行處理。以上是針對方法,生成一個Action節(jié)點,除此之外,針對與package節(jié)點相對應的 Java包內的類也可以生成Action節(jié)點。優(yōu)選地,所述Action節(jié)點的name屬性是所述Java 包內的相應類的名稱,所述class屬性是Java包內的相應類的全路徑名。這樣就可以用 ‘Action名稱!方法名’的形式,調用類內的每個方法。但是用這種方式調用的方法只能有同一種返回值類型,根據規(guī)定的返回值類型而定,也就是依據Action節(jié)點的子節(jié)點result 的type屬性而定,例如,依照本文給出的一實施例,其返回值類型是plainText。如下所示
〈Action name="secureAction" class=" com.zn.test.Actions.SecureAction ">
〈result name="success" type="plainText"></result> 〈/Action〉_繼續(xù)參照圖1,在Web應用程序每次部署時,調用所述配置文件生成類,從而用以自動生成配置文件的具體實施方式
有以下三種(1)在所述步驟B中,在Web應用程序每次部署時,重寫過濾器的初始化方法 init,并在過濾器的初始化方法init中,調用配置文件生成類。(2)在所述步驟B中,在Web應用程序每次部署時,重寫krvlet的初始化方法 init,并在krvlet的初始化方法init中,調用配置文件生成類。(3)在所述步驟B中,在Web應用程序每次部署時,重寫監(jiān)聽器Listener的 contex nitialized方法,并在監(jiān)聽器Listener的contex nitialized方法中,調用配置文件生成類。由上述本發(fā)明實施例的技術方案可以看出,采用本發(fā)明實施例提供的在Mruts 2 下自動生成配置文件的方法,當編程人員每增加一個Action即業(yè)務邏輯方法后或web應用程序在每次Action有改動后,程序都能夠自動遍歷檢測出該新增加的或修改的Action,并自動添加與此Action相對應的配置語句到配置文件中,因此,一定程度上可以減輕編程人員的工作量,除此之外,還可以避免一些由編程人員在手動修改配置的過程中出現的不必要的錯誤。 以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內。
權利要求
1.一種在Mruts 2下自動生成配置文件的方法,其特征在于,包括A、將Mruts2部署在Web服務器上;B、在Web應用程序每次部署時,調用配置文件生成類,用以自動生成配置文件。
2.如權利要求1所述的在Mruts2框架下自動生成配置文件的方法,其特征在于,在所述步驟B中,所述配置文件生成類包括Bi、確定自動生成的配置文件的路徑,以及需要遍歷的業(yè)務邏輯方法文件的根路徑;B2、遍歷所有業(yè)務邏輯類以及業(yè)務邏輯類內的業(yè)務邏輯方法,并根據不同的業(yè)務邏輯類及方法生成與之對應的從配置文件;B3、將所述從配置文件寫入配置文件。
3.如權利要求2所述的在Mruts2框架下自動生成配置文件的方法,其特征在于,在所述步驟B2中,包括B21、生成package節(jié)點,其中,對步驟B1中的業(yè)務邏輯方法文件的根路徑進行遍歷,根路徑以及根路徑下的每一個Java包對應一個package節(jié)點;B22、生成Action節(jié)點,其中,每個package節(jié)點內的Action節(jié)點都是根據其對應Java 包內的類以及類內的所有方法生成的。
4.如權利要求3所述的在Mruts2框架下自動生成配置文件的方法,其特征在于,在所述步驟B22中,對于不同的Mruts2返回值類型生成不同的Action節(jié)點。
5.如權利要求4所述的在Mruts2框架下自動生成配置文件的方法,其特征在于,所述返回值類型為plaiMext、dispatcher。
6.如權利要求5所述的在Mruts2框架下自動生成配置文件的方法,其特征在于,所述Action節(jié)點的name屬性和method屬性為對應的業(yè)務邏輯方法的名稱,其class屬性為對應的業(yè)務邏輯方法所在類的全路徑名。
7.如權利要求3所述的在Mruts2框架下自動生成配置文件的方法,其特征在于,所述Action節(jié)點的name屬性是所述Java包內的相應類的名稱,所述class屬性是Java包內的相應類的全路徑名。
8.如權利要求1所述的在Mruts2框架下自動生成配置文件的方法,其特征在于,在所述步驟B中,在Web應用程序每次部署時,重寫過濾器的初始化方法init,并在過濾器的初始化方法init中,調用配置文件生成類。
9.如權利要求1所述的在Mruts2框架下自動生成配置文件的方法,其特征在于,在所述步驟B中,在Web應用程序每次部署時,重寫Servlet的初始化方法init,并在Servlet 的初始化方法init中,調用配置文件生成類。
10.如權利要求1所述的在Mruts2框架下自動生成配置文件的方法,其特征在于,在所述步驟B中,在Web應用程序每次部署時,重寫監(jiān)聽器Listener WcontextInitialized 方法,并在監(jiān)聽器Listener的contextlnitialized方法中,調用配置文件生成類。
全文摘要
本發(fā)明公開了一種在Struts 2下自動生成配置文件的方法,其包括將Struts 2部署在Web服務器上的步驟;以及在Web應用程序每次部署時,調用配置文件生成類,用以自動生成配置文件的步驟。采用本發(fā)明實施例提供的在Struts 2下自動生成配置文件的方法,當編程人員每增加一個Action即業(yè)務邏輯方法后或web應用程序在每次Action有改動后,程序都能夠自動遍歷檢測出該新增加的或修改的Action,并自動添加與此Action相對應的配置語句到配置文件中,因此,一定程度上可以減輕編程人員的工作量,除此之外,還可以避免一些由編程人員在手動修改配置的過程中出現的不必要的錯誤。
文檔編號G06F9/44GK102253830SQ20111015708
公開日2011年11月23日 申請日期2011年6月10日 優(yōu)先權日2011年6月10日
發(fā)明者汪云飛, 黃旭輝 申請人:南京中興力維軟件有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1