溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SimpleFramework組件開發(fā)的方法是什么

發(fā)布時間:2022-01-06 18:00:06 來源:億速云 閱讀:102 作者:iii 欄目:編程語言

本篇內容介紹了“SimpleFramework組件開發(fā)的方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Simple組件是基于Web的,凡是和Web相關的UI或業(yè)務邏輯,都可以成為Simple組件。

單一的后臺邏輯是Simple組件不支持的,比如建立一個網(wǎng)絡連接、訪問數(shù)據(jù)等,但這些業(yè)務邏輯和前端Web關聯(lián)起來,比如基于Web的網(wǎng)絡流量監(jiān)控,就可以成為Simple組件。

Simple組件隱藏了前端Web(HTML、Javascript、CSS等)的復雜性,同時,又為后端邏輯提供了一致、可操作的業(yè)務邏輯接口,并且開發(fā)者可以自由的設計這些接口。

Simple組件是開放的、友好的,任何開發(fā)者都可以很容易按照規(guī)范來開發(fā)自己的組件。

需要實現(xiàn)的四個接口

自定義組件,必須實現(xiàn)以下四個接口(類):

接口IComponentRegistry

定義組件的注冊類實例,并在系統(tǒng)初始化的時候注冊到系統(tǒng)注冊表里,這樣,自定義組件就可以使用了。代碼如下:

ComponentRegistryFactory.getInstance().regist(new YourComponentRegistry(servletContext));

IComponentRegistry主要函數(shù)的定義及說明:

String getComponentName();  組件的名稱,這個值就是在XML描述中聲明的組件標簽,且必須***   IComponentRender getComponentRender();  獲取組件的渲染器實例,詳細見下   IComponentResourceProvider getComponentResourceProvider();  獲取組件的資源提供者實例,詳細見下   AbstractComponentBean createComponentBean(PageParameter pageParameter, Element component);  創(chuàng)建組件的元信息定義實例。組件的元信息來自XML描述文件,該實例將按XML中的定義來初始化Bean的屬性

接口IComponentResourceProvider

組件的資源提供者,該接口主要定義組件運行所必須依賴的資源環(huán)境,這些資源包括Javascript、CSS、jar或其它已注冊的組件等。

IComponentResourceProvider主要函數(shù)的定義及說明:

ZipInputStream getRequiredResource();  以Zip的方式獲取組件所需要的全部資源。一個典型的目錄結構可能如下:  ZIP    |--jsp    |--css    |--images    |--flash    |--jar      String getResourceHomePath();  獲取組件資源被部署以后的Web訪問路徑。比如,你想獲取組件資源中的圖片路徑,可以通過以下代碼訪問:  request.getContextPath() + getResourceHomePath() + “/images/t.png”      String[] getCssPath(PageRequestResponse requestResponse);  String[] getJavascriptPath(PageRequestResponse requestResponse);  String[] getJarPath();  聲明組件所依賴的特定資源,這些資源將被系統(tǒng)適當?shù)募尤腠憫綖g覽器的HTML中      String[] getPageJavascriptPath(PageRequestResponse requestResponse);  String[] getPageCssPath(PageRequestResponse requestResponse);  和上面是一樣,聲明組件所依賴的特定資源,區(qū)別在于路徑是基于請求資源的,可以引用其它組件的  Javascript和css資源   String[] getDependentComponents();  獲取組件資源所依賴的其它已注冊組件。比如,一個業(yè)務選擇窗口需要依賴基本的窗口組件

接口IComponentRender

組件渲染器,該接口負責向瀏覽器產(chǎn)生HTML(通過IComponentHtmlRender渲染)或者Javascript代碼(通過IComponentJavascriptRender渲染)。

組件渲染器還有一個重要的作用就是調用Handle中定義的業(yè)務邏輯。

IComponentHtmlRender主要函數(shù)的定義及說明:

String getHtml(ComponentParameter compParameter);  獲取組件被渲染的HTML        String getHtmlJavascriptCode(ComponentParameter compParameter);  獲取額外的相關Javascript代碼

IComponentJavascriptRender主要函數(shù)的定義及說明:

String getJavascriptCode(ComponentParameter compParameter);  獲取組件被渲染的Javascript代碼

類AbstractComponentBean

組件的描述(元)信息類。組件的描述信息是由組件開發(fā)者根據(jù)組件的特定要求而設定的,組件的描述信息來自XML描述文件,開發(fā)者必須按XML中的定義來初始化組件Bean的屬性,參考接口IComponentRegistry中的定義。

定義XML Schema

XML Schema主要是驗證XML描述文件的正確性,借助Eclipse等IDE工具,可以更準確快捷的編寫組件的定義屬性。

組件開發(fā)者需要為組件添加XML Schema支持,并包含在simple .xsd文件里。

定義Handle

Handle是組件業(yè)務的核心處理類,是留給用戶的接口來聯(lián)系組件行為的通用方式。Handle的設計由組件開發(fā)者來完成,這樣可以根據(jù)組件的行為設計出更適合的、更易操作的業(yè)務邏輯。很多Web框架僅僅提供了Action之類的控制器,對于業(yè)務開發(fā)者來講,需要做的事情就太多了,Handle明確了該關心什么,并且如何去做。

舉一個具體的實例。“數(shù)據(jù)分頁”是動態(tài)處理大量數(shù)據(jù)集的一種有效方式,下面是IPagerHandle的定義:

int getCount(ComponentParameter compParameter);                void process(ComponentParameter compParameter, int start);

IPagerHandle僅僅定義了兩個業(yè)務函數(shù)接口:getCount獲取結果集的總數(shù),process處理游標的當前位置為start的結果集。結合PagerBean的定義(每頁的顯示數(shù)量等),就可以很容易計算出當前顯示頁的數(shù)據(jù)集。

Handle必須繼承自接口IComponentHandle,IComponentHandle定義了一些缺省的組件業(yè)務行為。

“SimpleFramework組件開發(fā)的方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注億速云網(wǎng)站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI