這兩天我一直在想,怎樣定義框架結構的描述文件。我從以下幾個方面考慮:
現在我需要這樣的一個描述文件:描述框架網頁,也就是frame的網頁。 先前我分析了eclipse的插件描述文件。它是這樣定義的:
plugin.xml中一共有四個主要的標簽:plugin,requires,runtime,extension。其中plugin標簽的屬性提供的是我們要開發的Welcome插件的基本信息,除了name,version,provider-name等,最重要的是id,我們通過它可以索引到此元素。requires標簽中所列出的是需要的插件,這里我們要用到Eclipse Workbench和SWT API,因此導入了org.eclipse.ui插件。 runtime標簽指明的是我們開發的插件所在JAR包的文件名。extension標簽是插件擴展點的信息。 org.eclipse.ui.views是Eclipse系統提供的觀察窗口擴展點,我們的例子是一個觀察窗口(View),這表明我們是要在 org.eclipse.ui.views擴展點上進一步開發。 extension中還包括category和view兩個標簽,并且在view的屬性中聲明了Welcome插件的類名。<?xml version="1.0" encoding="UTF-8"?><plugin id="com.nidapeng.eclipse.plugin" name="Welcome to Eclipse" version="1.0"
我以為我發現了寶貝,興奮了好一陣!你看,多么美妙的結構。包含了外部包的聲明、運行時的庫、擴展點的設置、視圖的定義。最最閃亮之處就是擴展點。這意味著所有的插件都可以具備容器的能力,插件可以插入另外一個插件里面,插件本身就是個可擴展的。
當我著手建立這樣的java模型時候,我碰到難題了。我怎樣才能將插件視圖插入到框架視圖里呢?我怎樣才能實現框架與插件之間的通信,包括事件的傳遞。
首先說明一下這個框架的具體的應用和所采用的技術。這個框架是個web應用,窗體可配置的,可能是上下一分為二,也可能是左右一分為二等等,并且窗體可嵌套的。窗體的每一區域具體的視圖也可配置的,可能是個導航條,也可能是個列表框。技術打算采用struts的架構,保留action、bean、view。它們可以幫助我們完成其中一些繁重的工作。所以容器治理只能是struts本身的ActionServlet容器或者它的子類。
Struts是一個高度可配置、高度擴展性的MVC框架,我們幾乎可以用它開發任何能想到的用Java技術的Web應用。MVC模式的每一部分在StrUCts中都有相關對應部分。在struts里action是控制層,bean是模型層,view是視圖層。
現在我們把框架需求整理一下,以便我們更好的分析和定義框架的描述文件。
好了,現在知道我們需要做什么了。我們的描述文件里需要包括下列元素:
這里沒有視圖描述,因為struts已經將action關聯了視圖。所以我們只需要治理action就行了。視圖的處理全部交給struts去做了。
太累了,這里先放上初步的框架描述文件。以后等大腦清醒了,再闡述~
<?xml version="1.0" encoding="UTF-8"?>/*begin插件定義*/<plugin id="com.useeasy.plugin" name="Welcome to frame" version="1.0" provider-name="doJava">/*begin擴展區定義*/<frameset rows="64,*" desc="可擴展插件的web框架" extension="com.useeasy.frame"><frame id="com.useeasy.header" scrolling="no" noresize="true" action="/headAction" desc="第一個擴展區"</frame> <frame id="com.useeasy.main action="/listAction" desc="第二個擴展區"></frame> </frameset> //定義兩個擴展區/*end擴展區定義</plugin>/*end插件定義*/
新聞熱點
疑難解答