自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SimpleFramework框架高級特性之組件開發(fā)

開發(fā) 后端
本篇文章介紹了SimpleFramework框架高級特性之組件開發(fā),請大家參考。

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

單一的后臺邏輯是Simple組件不支持的,比如建立一個網(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ù)雜性,同時,又為后端邏輯提供了一致、可操作的業(yè)務(wù)邏輯接口,并且開發(fā)者可以自由的設(shè)計這些接口。

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

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

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

接口IComponentRegistry

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

 

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

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

 

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

 

接口IComponentResourceProvider

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

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

 

  1. ZipInputStream getRequiredResource();  
  2. 以Zip的方式獲取組件所需要的全部資源。一個典型的目錄結(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ū)別在于路徑是基于請求資源的,可以引用其它組件的  
  22. Javascript和css資源  
  23.  
  24. String[] getDependentComponents();  
  25. 獲取組件資源所依賴的其它已注冊組件。比如,一個業(yè)務(wù)選擇窗口需要依賴基本的窗口組件 

 

接口IComponentRender

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

組件渲染器還有一個重要的作用就是調(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主要是驗證XML描述文件的正確性,借助Eclipse等IDE工具,可以更準確快捷的編寫組件的定義屬性。

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

定義Handle

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

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

 

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

 

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

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

責(zé)任編輯:金賀 來源: SimpleFramework.net
相關(guān)推薦

2011-04-22 10:50:18

SimpleFrame

2011-04-21 10:59:44

SimpleFrameWeb

2011-04-29 10:58:11

SimpleFrame

2011-04-29 14:30:05

2011-04-28 10:45:39

SimpleFrame

2011-04-22 10:13:35

SimpleFrame

2011-04-29 09:33:22

SimpleFrame

2011-04-22 09:48:51

SimpleFrame

2011-04-22 10:01:59

SimpleFrame

2011-04-22 10:34:09

SimpleFrame

2012-08-28 09:54:35

SilverlightRapidSLSilverlight

2017-05-26 10:15:39

Java高級特性反射

2019-07-12 08:49:04

MySQ數(shù)據(jù)庫Redis

2025-02-10 00:23:11

Spring微服務(wù)架構(gòu)

2010-05-19 09:09:33

2011-05-20 10:15:06

JDK7

2016-03-23 11:05:58

Socket開發(fā)框架分析

2019-01-15 14:11:50

Android框架組件化

2010-08-06 09:18:14

Flex

2011-04-29 14:53:56

SimpleFrame
點贊
收藏

51CTO技術(shù)棧公眾號