日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
SimpleFramework框架高級(jí)特性之組件開發(fā)

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

10年積累的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有渭南免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

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

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

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

需要實(shí)現(xiàn)的四個(gè)接口

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

接口IComponentRegistry

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

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

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

 
 
  1. String getComponentName();  
  2. 組件的名稱,這個(gè)值就是在XML描述中聲明的組件標(biāo)簽,且必須***  
  3.  
  4. IComponentRender getComponentRender();  
  5. 獲取組件的渲染器實(shí)例,詳細(xì)見下  
  6.  
  7. IComponentResourceProvider getComponentResourceProvider();  
  8. 獲取組件的資源提供者實(shí)例,詳細(xì)見下  
  9.  
  10. AbstractComponentBean createComponentBean(PageParameter pageParameter, Element component);  
  11. 創(chuàng)建組件的元信息定義實(shí)例。組件的元信息來自XML描述文件,該實(shí)例將按XML中的定義來初始化Bean的屬性 

接口IComponentResourceProvider

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

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

 
 
  1. ZipInputStream getRequiredResource();  
  2. 以Zip的方式獲取組件所需要的全部資源。一個(gè)典型的目錄結(jié)構(gòu)可能如下:  
  3. ZIP  
  4.   |--jsp  
  5.   |--css  
  6.   |--images  
  7.   |--flash  
  8.   |--jar  
  9.     
  10. String getResourceHomePath();  
  11. 獲取組件資源被部署以后的Web訪問路徑。比如,你想獲取組件資源中的圖片路徑,可以通過以下代碼訪問:  
  12. request.getContextPath() + getResourceHomePath() + “/images/t.png”  
  13.     
  14. String[] getCssPath(PageRequestResponse requestResponse);  
  15. String[] getJavascriptPath(PageRequestResponse requestResponse);  
  16. String[] getJarPath();  
  17. 聲明組件所依賴的特定資源,這些資源將被系統(tǒng)適當(dāng)?shù)募尤腠憫?yīng)到瀏覽器的HTML中  
  18.     
  19. String[] getPageJavascriptPath(PageRequestResponse requestResponse);  
  20. String[] getPageCssPath(PageRequestResponse requestResponse);  
  21. 和上面是一樣,聲明組件所依賴的特定資源,區(qū)別在于路徑是基于請(qǐng)求資源的,可以引用其它組件的  
  22. Javascript和css資源  
  23.  
  24. String[] getDependentComponents();  
  25. 獲取組件資源所依賴的其它已注冊(cè)組件。比如,一個(gè)業(yè)務(wù)選擇窗口需要依賴基本的窗口組件 

接口IComponentRender

組件渲染器,該接口負(fù)責(zé)向?yàn)g覽器產(chǎn)生HTML(通過IComponentHtmlRender渲染)或者Javascript代碼(通過IComponentJavascriptRender渲染)。

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

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

 
 
  1. String getHtml(ComponentParameter compParameter);  
  2. 獲取組件被渲染的HTML  
  3.       
  4. String getHtmlJavascriptCode(ComponentParameter compParameter);  
  5. 獲取額外的相關(guān)Javascript代碼 

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

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

類AbstractComponentBean

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

定義XML Schema

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

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

定義Handle

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

舉一個(gè)具體的實(shí)例?!皵?shù)據(jù)分頁”是動(dòng)態(tài)處理大量數(shù)據(jù)集的一種有效方式,下面是IPagerHandle的定義:

 
 
  1. int getCount(ComponentParameter compParameter);  
  2.               
  3. void process(ComponentParameter compParameter, int start);  

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

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


當(dāng)前文章:SimpleFramework框架高級(jí)特性之組件開發(fā)
本文來源:http://www.5511xx.com/article/copeoed.html