專利名稱::頁(yè)面控件布局方法與裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及頁(yè)面布局
技術(shù)領(lǐng)域:
,具體涉及通過Java服務(wù)頁(yè)面(JSPJavaServerPage)標(biāo)簽實(shí)現(xiàn)頁(yè)面控件布局的方法以及相應(yīng)的用于通過JSP標(biāo)簽生成超文本置標(biāo)語(yǔ)言(HTMLHyperTextMarkupLanguage)代碼的裝置。
背景技術(shù):
:目前,為簡(jiǎn)化書寫HTML代碼的難度,使開發(fā)人員更能按照頁(yè)面控件的編寫習(xí)慣開發(fā)頁(yè)面,通過JSP標(biāo)簽技術(shù)生成頁(yè)面控件的應(yīng)用越來越普遍。在這些應(yīng)用中,通過JSP標(biāo)簽實(shí)現(xiàn)頁(yè)面控件布局是一項(xiàng)重要的內(nèi)容,通常采用如下兩種方法一、直接使用HTML代碼實(shí)現(xiàn)布局的要求,將JSP標(biāo)簽嵌套在用于布局的代碼中。示例如下<table><tr><td><xxx:A/></td></tr><tr><td><xxx:B/></td></tr></table>上例中,<xxx:A/>和<xxx:B/>分別為JSP標(biāo)簽A和B(開始和結(jié)束標(biāo)簽合并在一起);<table>和</table>分別為布局開始和結(jié)束代碼,前后兩組<tr><td>和</td></tr>分別為嵌套在其中的JSP標(biāo)簽A和B的布局開始和結(jié)束代碼。該布局將顯示上下兩個(gè)區(qū)域,在上方的區(qū)域中顯示標(biāo)簽A的內(nèi)容,在下方的區(qū)域中顯示標(biāo)簽B的內(nèi)容。本發(fā)明的發(fā)明人在對(duì)此方法的研究和實(shí)踐過程中發(fā)現(xiàn),在這個(gè)方法中,與布局相關(guān)的開發(fā)難度并沒有被降低,開發(fā)人員需要熟悉HTML代碼才能編寫出與頁(yè)面布局相關(guān)的代碼。二、由JSP標(biāo)簽同時(shí)生成自身布局的HTML代碼。示例如下<xxx:form><xxx:A/><xxx:B/></xxx:form>上例中,<xxx:form>和</xxx:form>分別為JSP標(biāo)簽form的開始和結(jié)束標(biāo)簽。在執(zhí)行上述JSP標(biāo)簽的過程中,各個(gè)JSP標(biāo)簽不僅需要生成自身內(nèi)容的HTML代碼,還要生成自身布局的HTML代碼,如下所示<form><table><tr><td>標(biāo)簽A的內(nèi)容</td></tr><tr><td>標(biāo)簽B的內(nèi)容</td></tr></table></form>其中,<table>和</table>即為由標(biāo)簽form生成的布局代碼;前后兩組<tr><td>和</td></tr>分別為標(biāo)簽A和B生成的布局代碼。本發(fā)明的發(fā)明人在對(duì)此方法的研究和實(shí)踐過程中發(fā)現(xiàn),在這個(gè)方法中,雖然開發(fā)人員無需手動(dòng)書寫HTML代碼來實(shí)現(xiàn)布局,但是由于布局邏輯固定在標(biāo)簽中,對(duì)于已經(jīng)編寫完成的標(biāo)簽而言,無法滿足靈活多變的布局需求。此外,若不了解標(biāo)簽所使用的布局邏輯,還容易造成標(biāo)簽執(zhí)行后所生成HTML代碼間布局的沖突,破壞頁(yè)面整體的布局結(jié)構(gòu)。
發(fā)明內(nèi)容本發(fā)明實(shí)施例提供頁(yè)面控件布局方法和相應(yīng)的裝置,能夠簡(jiǎn)單、靈活的實(shí)現(xiàn)ISP標(biāo)簽的布局要求。一種頁(yè)面控件布局方法,包括執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽,包括,調(diào)用與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局開始代碼;執(zhí)行所述容器標(biāo)簽中的組件標(biāo)簽,包括,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用所述布局管理器生成與所述組件標(biāo)簽關(guān)聯(lián)的組件布局開始代碼和組件布局結(jié)束代碼;執(zhí)行所述容器標(biāo)簽的容器結(jié)束標(biāo)簽,包括,調(diào)用與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,生成布局結(jié)束代碼。一種用于通過JSP標(biāo)簽生成HTML代碼的裝置,包括包括Java服務(wù)頁(yè)面引擎、容器執(zhí)行單元和組件執(zhí)行單元;所述Java服務(wù)頁(yè)面引擎,用于執(zhí)行Java服務(wù)頁(yè)面文件,在執(zhí)行到容器標(biāo)簽時(shí)調(diào)用所述容器執(zhí)行單元進(jìn)行執(zhí)行,在執(zhí)行到組件標(biāo)簽時(shí),調(diào)用所述組件執(zhí)行單元進(jìn)行執(zhí)行;所述容器執(zhí)行單元,具有獲取布局管理器的接口,用于根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽時(shí)的調(diào)用,調(diào)用與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局開始代碼;根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行容器標(biāo)簽的容器結(jié)束標(biāo)簽時(shí)的調(diào)用,調(diào)用與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局結(jié)束代碼;所述組件執(zhí)行單元,具有獲取布局管理器的接口,用于根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行組件標(biāo)簽時(shí)的調(diào)用,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用所述布局管理器生成與所述組件標(biāo)簽關(guān)聯(lián)的組件布局開始代碼和組件布局結(jié)束代碼。本發(fā)明實(shí)施例的技術(shù)方案中,使用兩種不同類型的JSP標(biāo)簽容器標(biāo)簽和組件標(biāo)簽,將布局邏輯從組件標(biāo)簽中剝離出來,通過組件標(biāo)簽所在的容器標(biāo)簽找到對(duì)應(yīng)的布局管理器實(shí)現(xiàn)組件標(biāo)簽的布局;由于采用與容器標(biāo)簽關(guān)聯(lián)的布局管理器負(fù)責(zé)布局代碼的生成,使得開發(fā)人員無需直接編寫布局代碼,開發(fā)簡(jiǎn)單;并且,組件標(biāo)簽自身與布局邏輯無關(guān),可通過不同的容器標(biāo)簽實(shí)現(xiàn)不同的布局需求,使用靈活而不易出錯(cuò)。圖1是本發(fā)明實(shí)施例的頁(yè)面控件布局方法主要步驟示意圖;圖2是本發(fā)明實(shí)施例的裝置的基本邏輯結(jié)構(gòu)示意圖;圖3是本發(fā)明實(shí)施例一頁(yè)面控件布局方法的流程示意圖;圖4是與本發(fā)明實(shí)施例一方法對(duì)應(yīng)的裝置的邏輯結(jié)構(gòu)示意圖;圖5是本發(fā)明實(shí)施例二頁(yè)面控件布局方法的流程示意圖;圖6是與本發(fā)明實(shí)施例二方法對(duì)應(yīng)的裝置的邏輯結(jié)構(gòu)示意圖;圖7是本發(fā)明實(shí)施例三頁(yè)面控件布局方法的流程示意圖;圖8是與本發(fā)明實(shí)施例三方法對(duì)應(yīng)的裝置的邏輯結(jié)構(gòu)示意圖。具體實(shí)施例方式本發(fā)明實(shí)施例提供頁(yè)面控件布局方法以及相應(yīng)的裝置。參考圖1,本發(fā)明實(shí)施例的頁(yè)面控件布局方法主要包括如下步驟A1、執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽,包括,調(diào)用與該容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局開始代碼。本發(fā)明實(shí)施例中使用兩種不同類型的JSP標(biāo)簽容器標(biāo)簽和組件標(biāo)簽。由于容器標(biāo)簽中需要放置組件標(biāo)簽,因此,容器標(biāo)簽采用包括容器開始標(biāo)簽和容器結(jié)束標(biāo)簽的結(jié)構(gòu)。各個(gè)容器標(biāo)簽與相應(yīng)的布局管理器關(guān)聯(lián),由布局管理器負(fù)責(zé)提供容器標(biāo)簽以及容器標(biāo)簽中的組件標(biāo)簽的布局邏輯。A2、執(zhí)行容器標(biāo)簽中的組件標(biāo)簽,包括,根據(jù)該組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用該布局管理器生成與組件標(biāo)簽關(guān)聯(lián)的組件布局開始代碼和組件布局結(jié)束代碼。組件標(biāo)簽可以采用包括組件開始標(biāo)簽和組件結(jié)束標(biāo)簽的結(jié)構(gòu),也可以采用開始和結(jié)束標(biāo)簽合并在一起的結(jié)構(gòu)。容器標(biāo)簽中可以有一個(gè)或一個(gè)以上的組件標(biāo)簽,若有多個(gè)組件標(biāo)簽,則在本步驟中分別執(zhí)行各個(gè)組件標(biāo)簽,生成各自關(guān)聯(lián)的組件布局開始代碼和組件布局結(jié)束代碼即可。組件標(biāo)簽中可以包括一個(gè)或一個(gè)以上的組件,這些組件彼此之間可以有類型上的區(qū)別,也可以是類型一致的。在生成組件布局開始代碼和組件布局結(jié)束代碼時(shí),需要分別對(duì)組件標(biāo)簽中的各個(gè)組件生成組件布局開始代碼和組件布局結(jié)束代碼。進(jìn)一步的,組件標(biāo)簽通常需要提供一定的內(nèi)容,因此執(zhí)行容器標(biāo)簽中的組件標(biāo)簽還可包括,在生成組件布局開始代碼和組件布局結(jié)束代碼的步驟之間,生成組件內(nèi)容代碼;當(dāng)然,在有多個(gè)組件的情況下,分別生成的各個(gè)組件內(nèi)容代碼應(yīng)當(dāng)在相應(yīng)組件的組件布局開始代碼和組件布局結(jié)束代碼之間。所稱組件內(nèi)容代碼可以由組件內(nèi)容開始代碼和組件內(nèi)容結(jié)束代碼組成;也可以是單一對(duì)象的組件內(nèi)容代碼,例如文本,這種情況可視為將該單一對(duì)象的組件內(nèi)容代碼包含在組件內(nèi)容開始代碼或組件內(nèi)容結(jié)束代碼中,若包含在開始代碼中,則結(jié)束代碼可以為空,若包含在結(jié)束代碼中,則開始代碼可以為空。A3、執(zhí)行容器標(biāo)簽的容器結(jié)束標(biāo)簽,包括,調(diào)用與該容器標(biāo)簽對(duì)應(yīng)的布局管理器,生成布局結(jié)束代碼。當(dāng)然,容器標(biāo)簽也可具有自身的內(nèi)容,與組件內(nèi)容類似,可以由容器內(nèi)容開始代碼和容器內(nèi)容結(jié)束代碼組成;也可以是單一對(duì)象的容器內(nèi)容代碼。因此,可以在執(zhí)行容器開始標(biāo)簽的過程中,在生成布局開始代碼后,生成單一對(duì)象的容器內(nèi)容代碼;或者,可以在執(zhí)行容器結(jié)束標(biāo)簽的過程中,生成單一對(duì)象的容器內(nèi)容代碼,然后再執(zhí)行調(diào)用布局管理器的操作;或者,也可以在執(zhí)行容器開始標(biāo)簽的過程中,在生成布局開始代碼后,生成容器內(nèi)容開始代碼,隨后在執(zhí)行容器結(jié)束標(biāo)簽的過程中,生成容器內(nèi)容結(jié)束代碼,然后再執(zhí)行調(diào)用布局管理器的操作。其中,生成單一對(duì)象的容器內(nèi)容代碼的情況,也可以視為分別執(zhí)行了生成容器內(nèi)容開始和結(jié)束代碼的步驟,只是其中一個(gè)執(zhí)行步驟的結(jié)果為空。另外,若一個(gè)組件標(biāo)簽不在一個(gè)容器標(biāo)簽中,或者一個(gè)組件標(biāo)簽處于另外一個(gè)組件標(biāo)簽中,則在執(zhí)行組件標(biāo)簽時(shí),獲得相應(yīng)的布局管理器將會(huì)返回空值,這種情況下不會(huì)執(zhí)行該組件標(biāo)簽布局代碼的生成操作。下面根據(jù)上述頁(yè)面控件布局方法,從代碼設(shè)計(jì)的角度對(duì)所涉及的軟件對(duì)象進(jìn)行說明容器標(biāo)簽主要用于關(guān)聯(lián)布局管理器,由于需要調(diào)用布局管理器來實(shí)現(xiàn)布局,因此容器標(biāo)簽提供獲取布局管理器的代碼接口。當(dāng)然,為實(shí)現(xiàn)對(duì)布局管理器的靈活配置,容器標(biāo)簽也可進(jìn)一步提供設(shè)置布局管理器的代碼接口,這樣即可通過執(zhí)行容器標(biāo)簽來修改和設(shè)置布局管理器的布局邏輯。進(jìn)一步的,若容器標(biāo)簽具有自身的內(nèi)容,則容器標(biāo)簽還可提供生成容器內(nèi)容開始代碼的代碼接口和生成容器內(nèi)容結(jié)束代碼的代碼接口,若容器內(nèi)容為單一對(duì)象的容器內(nèi)容代碼,則其中一個(gè)生成內(nèi)容的代碼接口所提供的代碼片段可以為空。布局管理器負(fù)責(zé)容器標(biāo)簽以及容器標(biāo)簽中的組件標(biāo)簽的布局邏輯,因此提供四個(gè)接口,分別為生成布局開始和結(jié)束代碼的代碼接口,以及生成組件布局開始和結(jié)束代碼的代碼接口。組件標(biāo)簽與布局邏輯無關(guān),因此提供生成組件內(nèi)容開始代碼和組件內(nèi)容結(jié)束代碼的代碼接口即可,若組件內(nèi)容為單一對(duì)象的組件內(nèi)容代碼,則其中一個(gè)代碼接口所提供的代碼片段可以為空。參考圖2,對(duì)應(yīng)于上述頁(yè)面控件布局方法,本發(fā)明實(shí)施例的用于通過JSP標(biāo)簽生成HTML代碼的裝置主要包括JSP引擎101、容器執(zhí)行單元102和組件執(zhí)行單元103。JSP引擎101,用于執(zhí)行JSP文件,在執(zhí)行到容器標(biāo)簽時(shí)調(diào)用容器執(zhí)行單元102進(jìn)行執(zhí)行,在執(zhí)行到組件標(biāo)簽時(shí),調(diào)用組件執(zhí)行單元103進(jìn)行執(zhí)行。容器執(zhí)行單元102,具有獲取布局管理器的接口,用于根據(jù)JSP引擎101在執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽時(shí)的調(diào)用,調(diào)用與該容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局開始代碼;根據(jù)JSP引擎101在執(zhí)行容器標(biāo)簽的容器結(jié)束標(biāo)簽時(shí)的調(diào)用,調(diào)用與該容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局結(jié)束代碼。組件執(zhí)行單元103,具有獲取布局管理器的接口,用于根據(jù)JSP引擎101在執(zhí)行組件標(biāo)簽時(shí)的調(diào)用,根據(jù)該組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用該布局管理器生成與所執(zhí)行組件標(biāo)簽關(guān)聯(lián)的組件布局開始代碼和組件布局結(jié)束代碼。進(jìn)一步的,容器執(zhí)行單元102還可具有設(shè)置布局管理器的接口;使得容器執(zhí)行單元102還可用于,根據(jù)JSP引擎101在執(zhí)行容器標(biāo)簽時(shí)的調(diào)用,對(duì)與該容器標(biāo)簽對(duì)應(yīng)的布局管理器進(jìn)行設(shè)置。本發(fā)明實(shí)施例的上述基本方案中,使用兩種不同類型的JSP標(biāo)簽容器標(biāo)簽和組件標(biāo)簽,將布局邏輯從組件標(biāo)簽中剝離出來,組件標(biāo)簽的布局由該組件標(biāo)簽所在的容器標(biāo)簽對(duì)應(yīng)的布局管理器負(fù)責(zé),開發(fā)人員無需直接編寫布局代碼,開發(fā)簡(jiǎn)單;并且,組件標(biāo)簽自身與布局邏輯無關(guān),可通過放置在不同的容器標(biāo)簽中實(shí)現(xiàn)不同的布局需求,使用靈活;而且標(biāo)簽自身不需要生成與布局相關(guān)的HTML代碼,因此不會(huì)造成標(biāo)簽執(zhí)行后的布局沖突,保證了布局邏輯的正確性。下面通過具體實(shí)施例對(duì)本發(fā)明的方法和裝置作進(jìn)一步的詳細(xì)說明。實(shí)施例一、一種頁(yè)面控件布局方法,參考圖3(圖3中,標(biāo)號(hào)相同的一對(duì)方向相反的箭頭表示對(duì)應(yīng)的調(diào)用與返回,此外,由于容器執(zhí)行單元/組件執(zhí)行單元所執(zhí)行的實(shí)際內(nèi)容由被執(zhí)行的容器標(biāo)簽/組件標(biāo)簽提供,因此圖3中將容器標(biāo)簽/組件標(biāo)簽作為主體,后續(xù)流程圖中的表示與此相同,不再贅述),包括如下步驟a1、JSP引擎調(diào)用容器執(zhí)行單元執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽。a2、容器執(zhí)行單元執(zhí)行容器開始標(biāo)簽,調(diào)用與該容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局開始代碼。a3、JSP引擎調(diào)用組件執(zhí)行單元執(zhí)行容器標(biāo)簽中的組件標(biāo)簽的組件開始標(biāo)簽。a4、組件執(zhí)行單元執(zhí)行組件開始標(biāo)簽,根據(jù)該組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器。a5、組件執(zhí)行單元調(diào)用獲得的布局管理器生成組件布局開始代碼。a6、通常組件標(biāo)簽需要提供一定的內(nèi)容,因此組件執(zhí)行單元在執(zhí)行組件開始標(biāo)簽時(shí),除了生成組件布局開始代碼,還進(jìn)一步生成組件內(nèi)容開始代碼;此代碼片段可以為空。a7、JSP引擎調(diào)用組件執(zhí)行單元執(zhí)行容器標(biāo)簽中的組件標(biāo)簽的組件結(jié)束標(biāo)簽。a8、組件執(zhí)行單元執(zhí)行組件結(jié)束標(biāo)簽,通常,可生成組件內(nèi)容結(jié)束代碼;此代碼片段可以為空。a9、組件執(zhí)行單元在生成組件內(nèi)容結(jié)束代碼后,根據(jù)所執(zhí)行組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器。a10、組件執(zhí)行單元調(diào)用獲得的布局管理器生成組件布局結(jié)束代碼。a11、JSP引擎調(diào)用容器執(zhí)行單元執(zhí)行容器標(biāo)簽的容器結(jié)束標(biāo)簽。a12、容器執(zhí)行單元執(zhí)行容器結(jié)束標(biāo)簽,調(diào)用與該容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局結(jié)束代碼。在上述執(zhí)行過程中,若容器標(biāo)簽內(nèi)部包括多個(gè)組件標(biāo)簽,則對(duì)各個(gè)組件標(biāo)簽重復(fù)a3~a10的步驟即可。參考圖4,對(duì)應(yīng)于實(shí)施例一的頁(yè)面控件布局方法,本發(fā)明實(shí)施例的用于通過JSP標(biāo)簽生成HTML代碼的裝置中的組件執(zhí)行單元203具體可采用如下結(jié)構(gòu),包括第一開始單元2031,用于根據(jù)JSP引擎201在執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽時(shí)的調(diào)用,根據(jù)該組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用獲得的布局管理器生成組件布局開始代碼。第一結(jié)束單元2032,用于根據(jù)JSP引擎201在執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽時(shí)的調(diào)用,根據(jù)該組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用獲得的布局管理器生成組件布局結(jié)束代碼。圖4中JSP引擎201和容器執(zhí)行單元202可采用前述JSP引擎101和容器執(zhí)行單元102的邏輯結(jié)構(gòu)。為更好的理解本發(fā)明實(shí)施例一,下面舉例進(jìn)行說明。一段JSP文件中JSP標(biāo)簽使用的樣例如下,包括容器標(biāo)簽grid、組件標(biāo)簽A、組件標(biāo)簽B<xxx:grid><xxx:A/><xxx:B></xxx:B></xxx:grid>JSP引擎執(zhí)行上述一段JSP文件,在解析到容器標(biāo)簽grid的容器開始標(biāo)簽<xxx:grid>時(shí),容器執(zhí)行單元生成布局開始代碼(通過調(diào)用相應(yīng)的布局管理器生成,簡(jiǎn)潔起見,以下皆省略該調(diào)用描述,不再重復(fù)說明)<table>JSP引擎在解析到組件標(biāo)簽A<xxx:A/>時(shí)(開始和結(jié)束標(biāo)簽合并在一起),組件執(zhí)行單元獲取到其所在的容器“grid”,從而找到相關(guān)的布局管理器,生成組件布局開始代碼<tr><td>然后執(zhí)行組件標(biāo)簽A生成組件標(biāo)簽A自身內(nèi)容的開始代碼和結(jié)束代碼<inputtype=”text”name=”A”...></input>然后組件執(zhí)行單元通過布局管理器生成組件布局結(jié)束代碼</td></tr>JSP引擎在解析到組件標(biāo)簽B的組件開始標(biāo)簽<xxx:B>時(shí),組件執(zhí)行單元獲取到其所在的容器“grid”,生成組件布局開始代碼以及組件標(biāo)簽B的組件內(nèi)容開始代碼<tr><td><inputtype=”text”name=”B”...>JSP引擎在解析到組件標(biāo)簽B的組件結(jié)束標(biāo)簽</xxx:B>時(shí),組件執(zhí)行單元獲取到其所在的容器“grid”,生成組件標(biāo)簽B的組件內(nèi)容結(jié)束代碼以及組件布局結(jié)束代碼</input></td></tr>最后,JSP引擎在解析到容器標(biāo)簽grid的容器結(jié)束標(biāo)簽</xxx:grid>時(shí),容器執(zhí)行單元生成布局結(jié)束代碼</table>總的HTML代碼的輸出為<table><tr><td><inputtype=”text”name=”A”...></input></td></tr><tr><td><inputtype=”text”name=”B”...></input></td></tr></table>對(duì)應(yīng)的布局效果為,在瀏覽器中顯示為上下兩行,組件A在上面一行顯示,組件B在下面一行顯示。顯然,組件標(biāo)簽B的組件內(nèi)容代碼也可以象組件標(biāo)簽A一樣一次性輸出,例如在開始代碼中輸出,則結(jié)束代碼輸出為空。實(shí)施例二、一種頁(yè)面控件布局方法,與實(shí)施例一的區(qū)別在于,組件標(biāo)簽中具有不同類型的組件,每個(gè)組件需要有自己的組件布局開始代碼和組件布局結(jié)束代碼。參考圖5,包括如下步驟b1、JSP引擎調(diào)用容器執(zhí)行單元執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽。b2、容器執(zhí)行單元執(zhí)行容器開始標(biāo)簽,調(diào)用與該容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局開始代碼。b3、JSP引擎調(diào)用組件執(zhí)行單元執(zhí)行容器標(biāo)簽中的組件標(biāo)簽的組件開始標(biāo)簽。b4、組件執(zhí)行單元執(zhí)行組件開始標(biāo)簽,根據(jù)該組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器。b5、組件執(zhí)行單元獲取所執(zhí)行組件標(biāo)簽中的前組件。當(dāng)一個(gè)組件標(biāo)簽需要負(fù)責(zé)生成多個(gè)組件的內(nèi)容時(shí),可以包含多個(gè)組件,本實(shí)施例中按照組件的作用區(qū)分為三種類型前組件、主組件、后組件。主組件通常指該組件標(biāo)簽主要的輸出內(nèi)容,一般是一個(gè),如果組件標(biāo)簽中具有其他嵌套的內(nèi)容,則將作為主組件的嵌套內(nèi)容,主組件可以使用也可以不使用這些嵌套內(nèi)容。前組件指需要輸出在主組件前面的組件,前組件可以有多個(gè)。后組件指需要輸出在主組件后面的組件,后組件也可以有多個(gè)。舉例說明如下,對(duì)于表單域的“輸入框”組件標(biāo)簽,可以定義“標(biāo)題”、“輸入框”、“說明”三個(gè)組件,其中“輸入框”組件就是主組件,“標(biāo)題”為前組件,“說明”為后組件。b6、組件執(zhí)行單元調(diào)用獲得的布局管理器生成前組件布局開始代碼。b7、通常前組件需要提供一定的內(nèi)容,因此還進(jìn)一步生成前組件內(nèi)容開始代碼;此代碼片段可以為空。b8、生成前組件內(nèi)容結(jié)束代碼;此代碼片段可以為空。b9、組件執(zhí)行單元調(diào)用獲得的布局管理器生成前組件布局結(jié)束代碼。若步驟b5中獲取的前組件有多個(gè),則對(duì)各個(gè)前組件重復(fù)b6~b9的步驟,獲得全部前組件的布局代碼和內(nèi)容代碼。b10、組件執(zhí)行單元調(diào)用獲得的布局管理器生成主組件布局開始代碼;b11、通常主組件需要提供一定的內(nèi)容,因此還進(jìn)一步生成主組件內(nèi)容開始代碼;此代碼片段可以為空。b12、JSP引擎調(diào)用組件執(zhí)行單元執(zhí)行容器標(biāo)簽中的組件標(biāo)簽的組件結(jié)束標(biāo)簽。b13、組件執(zhí)行單元執(zhí)行組件結(jié)束標(biāo)簽,通常,可生成主組件內(nèi)容結(jié)束代碼;此代碼片段可以為空。b14、組件執(zhí)行單元在生成主組件內(nèi)容結(jié)束代碼后,根據(jù)所執(zhí)行組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器。b15、組件執(zhí)行單元調(diào)用獲得的布局管理器生成主組件布局結(jié)束代碼。b16、組件執(zhí)行單元獲取所執(zhí)行組件標(biāo)簽中的后組件。b17、組件執(zhí)行單元調(diào)用獲得的布局管理器生成后組件布局開始代碼。b18、通常后組件需要提供一定的內(nèi)容,因此還進(jìn)一步生成后組件內(nèi)容開始代碼;此代碼片段可以為空。b19、生成后組件內(nèi)容結(jié)束代碼;此代碼片段可以為空。b20、組件執(zhí)行單元調(diào)用獲得的布局管理器生成后組件布局結(jié)束代碼。若步驟b16中獲取的后組件有多個(gè),則對(duì)各個(gè)后組件重復(fù)b17~b20的步驟,獲得全部后組件的布局代碼和內(nèi)容代碼。參考圖6,對(duì)應(yīng)于實(shí)施例二的頁(yè)面控件布局方法,本發(fā)明實(shí)施例的用于通過JSP標(biāo)簽生成HTML代碼的裝置中的組件執(zhí)行單元303具體可采用如下結(jié)構(gòu),包括第二開始單元3031,用于根據(jù)JSP引擎301在執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽時(shí)的調(diào)用,根據(jù)該組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器;獲取該組件標(biāo)簽中的前組件,調(diào)用獲得的布局管理器生成前組件布局開始代碼和前組件布局結(jié)束代碼;調(diào)用獲得的布局管理器生成主組件布局開始代碼。第二結(jié)束單元3032,用于根據(jù)JSP引擎301在執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽時(shí)的調(diào)用,根據(jù)該組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用獲得的布局管理器生成主組件布局結(jié)束代碼;獲取該組件標(biāo)簽中的后組件,調(diào)用獲得的布局管理器生成后組件布局開始代碼和后組件布局結(jié)束代碼。圖6中JSP引擎301和容器執(zhí)行單元302可采用前述JSP引擎101和容器執(zhí)行單元102的邏輯結(jié)構(gòu)。本實(shí)施例中提供了通過組件標(biāo)簽控制多個(gè)不同類型的組件布局的方法。為更好的理解本發(fā)明實(shí)施例二,下面舉例進(jìn)行說明。一段JSP文件中JSP標(biāo)簽使用的樣例如下,包括容器標(biāo)簽grid、組件標(biāo)簽A,組件標(biāo)簽A將自身分解為三個(gè)組件一個(gè)前組件“l(fā)abel”、一個(gè)主組件、一個(gè)后組件“description”<xxx:grid><xxx:Alabel=“組件A的標(biāo)題”description=“組件A的描述”/></xxx:grid>JSP引擎執(zhí)行上述一段JSP文件,在解析到容器標(biāo)簽grid的容器開始標(biāo)簽<xxx:grid>時(shí),容器執(zhí)行單元生成布局開始代碼<table>JSP引擎在解析到組件標(biāo)簽A時(shí)(開始和結(jié)束標(biāo)簽合并在一起),組件執(zhí)行單元獲取到其所在的容器“grid”,從而找到相關(guān)的布局管理器,生成前組件布局開始代碼<tr><td>然后,生成前組件“l(fā)abel”的內(nèi)容開始和結(jié)束代碼(前組件“l(fā)abel”用來生成標(biāo)題內(nèi)容,該內(nèi)容是一個(gè)單一對(duì)象)組件A的標(biāo)題然后組件執(zhí)行單元通過布局管理器生成前組件布局結(jié)束代碼</td>同理,組件執(zhí)行單元生成主組件的布局開始代碼和內(nèi)容代碼以及主組件的的布局結(jié)束代碼<td><inputtype=”text”name=”A”...></td>然后,生成后組件“description”的布局開始代碼、內(nèi)容開始和結(jié)束代碼(后組件“description”用來生成描述內(nèi)容,該內(nèi)容是一個(gè)單一對(duì)象)、布局結(jié)束代碼<td>組件A的描述</td></tr>最后,JSP引擎在解析到容器標(biāo)簽grid的容器結(jié)束標(biāo)簽</xxx:grid>時(shí),容器執(zhí)行單元生成布局結(jié)束代碼</table>總的HTML代碼的輸出為<table><tr><td>組件A的標(biāo)題</td><td><inputtype=”text”name=”A”...></input></td><td>組件A的描述</td></tr></table>對(duì)應(yīng)的布局效果為,在瀏覽器中顯示一行,左邊顯示標(biāo)題,中間顯示主組件內(nèi)容,右邊顯示描述內(nèi)容。實(shí)施例三、一種頁(yè)面控件布局方法,與實(shí)施例一的區(qū)別在于,組件標(biāo)簽中具有相同類型的組件,每個(gè)組件需要有自己的組件布局開始代碼和組件布局結(jié)束代碼。參考圖7,包括如下步驟c1、JSP引擎調(diào)用容器執(zhí)行單元執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽。c2、容器執(zhí)行單元執(zhí)行容器開始標(biāo)簽,調(diào)用與該容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局開始代碼。c3、JSP引擎調(diào)用組件執(zhí)行單元執(zhí)行容器標(biāo)簽中的組件標(biāo)簽的組件開始標(biāo)簽,該執(zhí)行過程返回的代碼可以為空。c4、JSP引擎調(diào)用組件執(zhí)行單元執(zhí)行容器標(biāo)簽中的組件標(biāo)簽的組件結(jié)束標(biāo)簽。c5、組件執(zhí)行單元執(zhí)行組件結(jié)束標(biāo)簽,根據(jù)所執(zhí)行組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器。c6、組件執(zhí)行單元獲取所執(zhí)行組件標(biāo)簽中的各個(gè)組件。當(dāng)一個(gè)組件標(biāo)簽需要負(fù)責(zé)生成多個(gè)組件的內(nèi)容時(shí),可以包含多個(gè)組件,本實(shí)施例中不區(qū)分組件標(biāo)簽中組件的類型,對(duì)所包含的組件進(jìn)行一致的操作。c7、組件執(zhí)行單元調(diào)用獲得的布局管理器生成組件布局開始代碼。c8、通常組件需要提供一定的內(nèi)容,因此還進(jìn)一步生成組件內(nèi)容開始代碼;此代碼片段可以為空。c9、生成組件內(nèi)容結(jié)束代碼;此代碼片段可以為空。c10、組件執(zhí)行單元調(diào)用獲得的布局管理器生成組件布局結(jié)束代碼。若步驟c6中獲取的組件有多個(gè),則對(duì)各個(gè)組件重復(fù)c7~c10的步驟,獲得全部組件的布局代碼和內(nèi)容代碼。c11、JSP引擎調(diào)用容器執(zhí)行單元執(zhí)行容器標(biāo)簽的容器結(jié)束標(biāo)簽。c12、容器執(zhí)行單元執(zhí)行容器結(jié)束標(biāo)簽,調(diào)用與該容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局結(jié)束代碼。上述步驟中,步驟c5~c10也可以在執(zhí)行組件開始標(biāo)簽的過程中進(jìn)行,這種情況下,JSP引擎調(diào)用組件執(zhí)行單元執(zhí)行容器標(biāo)簽中的組件標(biāo)簽的組件結(jié)束標(biāo)簽時(shí),返回的代碼可以為空。參考圖8,對(duì)應(yīng)于實(shí)施例三的頁(yè)面控件布局方法,本發(fā)明實(shí)施例的用于通過JSP標(biāo)簽生成HTML代碼的裝置中的組件執(zhí)行單元403具體可采用如下結(jié)構(gòu),包括第二開始單元4031,用于根據(jù)JSP引擎401在執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽時(shí)的調(diào)用,執(zhí)行該組件開始標(biāo)簽。第二結(jié)束單元4032,用于根據(jù)JSP引擎401在執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽時(shí)的調(diào)用,根據(jù)該組件標(biāo)簽所在的容器標(biāo)簽獲得與該容器標(biāo)簽對(duì)應(yīng)的布局管理器;獲取該組件標(biāo)簽中的各個(gè)組件;調(diào)用獲得的布局管理器分別生成各個(gè)組件的組件布局開始代碼和組件布局結(jié)束代碼。圖8中JSP引擎401和容器執(zhí)行單元402可采用前述JSP引擎101和容器執(zhí)行單元102的邏輯結(jié)構(gòu)。本實(shí)施例中提供了通過組件標(biāo)簽控制多個(gè)相同類型的組件布局的方法。為更好的理解本發(fā)明實(shí)施例三,下面舉例進(jìn)行說明。一段JSP文件中JSP標(biāo)簽使用的樣例如下,包括容器標(biāo)簽grid、組件標(biāo)簽A,組件標(biāo)簽A將自身分解為三個(gè)組件“content1”、“content2”、“content3”<xxx:grid><xxx:Alist=”content1,content2,content3”/></xxx:grid>JSP引擎執(zhí)行上述一段JSP文件,在解析到容器標(biāo)簽grid的容器開始標(biāo)簽<xxx:grid>時(shí),容器執(zhí)行單元生成布局開始代碼<table>JSP引擎在解析到組件標(biāo)簽A時(shí)(開始和結(jié)束標(biāo)簽合并在一起),組件執(zhí)行單元獲取到其包含的三個(gè)組件,并獲取到其所在的容器“grid”,從而找到相關(guān)的布局管理器,依次對(duì)各個(gè)組件執(zhí)行如下操作生成組件“contentX”(X表示1,2,3)的組件布局開始代碼<tr><td>,或<td>然后,生成“contentX”的內(nèi)容開始和結(jié)束代碼(該內(nèi)容是一個(gè)單一對(duì)象)contentX然后,生成組件“contentX”(X表示1,2,3)的組件布局結(jié)束代碼</td>,或</td></tr>循環(huán)執(zhí)行完所有組件后,結(jié)束對(duì)組件標(biāo)簽A的處理。最后,JSP引擎在解析到容器標(biāo)簽grid的容器結(jié)束標(biāo)簽</xxx:grid>時(shí),容器執(zhí)行單元生成布局結(jié)束代碼</table>總的HTML代碼的輸出為<table><tr><td>content1</td><td>content2</td><td>content3</td></tr></table>對(duì)應(yīng)的布局效果為,在瀏覽器中顯示一行三列,第一列顯示content1,第二列顯示content2,第三列顯示content3。本發(fā)明實(shí)施例的技術(shù)方案中,使用兩種不同類型的JSP標(biāo)簽容器標(biāo)簽和組件標(biāo)簽,將布局邏輯從組件標(biāo)簽中剝離出來,通過組件標(biāo)簽所在的容器標(biāo)簽找到對(duì)應(yīng)的布局管理器實(shí)現(xiàn)組件標(biāo)簽的布局;由于采用與容器標(biāo)簽關(guān)聯(lián)的布局管理器負(fù)責(zé)布局代碼的生成,使得開發(fā)人員無需直接編寫布局代碼,簡(jiǎn)化了組件標(biāo)簽的開發(fā)和維護(hù);并且,組件標(biāo)簽自身與布局邏輯無關(guān),可通過不同的容器標(biāo)簽實(shí)現(xiàn)不同的布局需求,可擴(kuò)展性強(qiáng)且使用靈活而不易出錯(cuò)。進(jìn)一步提供了通過組件標(biāo)簽控制多個(gè)相同或不同類型的組件布局的方法,能夠支持更靈活的應(yīng)用方式。本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括ROM、RAM、磁盤或光盤等。以上對(duì)本發(fā)明實(shí)施例所提供的頁(yè)面控件布局方法和相應(yīng)的裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。權(quán)利要求1、一種頁(yè)面控件布局方法,其特征在于,包括執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽,包括,調(diào)用與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局開始代碼;執(zhí)行所述容器標(biāo)簽中的組件標(biāo)簽,包括,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用所述布局管理器生成與所述組件標(biāo)簽關(guān)聯(lián)的組件布局開始代碼和組件布局結(jié)束代碼;執(zhí)行所述容器標(biāo)簽的容器結(jié)束標(biāo)簽,包括,調(diào)用與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,生成布局結(jié)束代碼。2、根據(jù)權(quán)利要求1所述的頁(yè)面控件布局方法,其特征在于所述執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽還包括,在生成布局開始代碼后,生成單一對(duì)象的容器內(nèi)容代碼;或者,所述執(zhí)行容器標(biāo)簽的容器結(jié)束標(biāo)簽還包括,生成單一對(duì)象的容器內(nèi)容代碼,然后再執(zhí)行所述調(diào)用布局管理器的操作;或者,所述執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽還包括,在生成布局開始代碼后,生成容器內(nèi)容開始代碼;所述執(zhí)行容器標(biāo)簽的容器結(jié)束標(biāo)簽還包括,生成容器內(nèi)容結(jié)束代碼,然后再執(zhí)行所述調(diào)用布局管理器的操作。3、根據(jù)權(quán)利要求1所述的頁(yè)面控件布局方法,其特征在于所述容器標(biāo)簽中包括一個(gè)以上的組件標(biāo)簽,在所述執(zhí)行容器開始標(biāo)簽和執(zhí)行容器結(jié)束標(biāo)簽的步驟之間,分別執(zhí)行各個(gè)組件標(biāo)簽。4、根據(jù)權(quán)利要求1所述的頁(yè)面控件布局方法,其特征在于所述執(zhí)行容器標(biāo)簽中的組件標(biāo)簽還包括,在生成組件布局開始代碼和組件布局結(jié)束代碼的步驟之間,生成組件內(nèi)容代碼,所述組件內(nèi)容代碼為單一對(duì)象的組件內(nèi)容代碼或由組件內(nèi)容開始代碼和組件內(nèi)容結(jié)束代碼組成。5、根據(jù)權(quán)利要求1~3任意一項(xiàng)所述的頁(yè)面控件布局方法,其特征在于,所述調(diào)用布局管理器生成與組件標(biāo)簽關(guān)聯(lián)的組件布局開始代碼和組件布局結(jié)束代碼具體為執(zhí)行所述組件標(biāo)簽的組件開始標(biāo)簽,包括,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用所述布局管理器生成組件布局開始代碼;執(zhí)行所述組件標(biāo)簽的組件結(jié)束標(biāo)簽,包括,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用所述布局管理器生成組件布局結(jié)束代碼。6、根據(jù)權(quán)利要求5所述的頁(yè)面控件布局方法,其特征在于所述執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽還包括,在生成組件布局開始代碼后,生成單一對(duì)象的組件內(nèi)容代碼;或者,所述執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽還包括,生成單一對(duì)象的組件內(nèi)容代碼,然后再執(zhí)行所述獲得布局管理器的操作;或者,所述執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽還包括,在生成組件布局開始代碼后,生成組件內(nèi)容開始代碼;所述執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽還包括,生成組件內(nèi)容結(jié)束代碼,然后再執(zhí)行所述獲得布局管理器的操作。7、根據(jù)權(quán)利要求1~3任意一項(xiàng)所述的頁(yè)面控件布局方法,其特征在于,所述組件標(biāo)簽中包括三種類型的組件前組件、主組件、后組件;所述組件布局開始和結(jié)束代碼包括該三種類型的組件的布局開始和結(jié)束代碼;所述調(diào)用布局管理器生成與組件標(biāo)簽關(guān)聯(lián)的組件布局開始代碼和組件布局結(jié)束代碼具體為執(zhí)行所述組件標(biāo)簽的組件開始標(biāo)簽,包括,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器;獲取所述組件標(biāo)簽中的前組件,調(diào)用所述布局管理器生成前組件布局開始代碼和前組件布局結(jié)束代碼;調(diào)用所述布局管理器生成主組件布局開始代碼;執(zhí)行所述組件標(biāo)簽的組件結(jié)束標(biāo)簽,包括,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用所述布局管理器生成主組件布局結(jié)束代碼;獲取所述組件標(biāo)簽中的后組件,調(diào)用所述布局管理器生成后組件布局開始代碼和后組件布局結(jié)束代碼。8、根據(jù)權(quán)利要求7所述的頁(yè)面控件布局方法,其特征在于所述執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽還包括,在生成前組件布局開始代碼和前組件布局結(jié)束代碼的步驟之間,生成單一對(duì)象的前組件內(nèi)容代碼或分別生成前組件內(nèi)容開始代碼和前組件內(nèi)容結(jié)束代碼;和/或,所述執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽還包括,在生成后組件布局開始代碼和后組件布局結(jié)束代碼的步驟之間,生成單一對(duì)象的后組件內(nèi)容代碼或分別生成后組件內(nèi)容開始代碼和后組件內(nèi)容結(jié)束代碼;和/或,所述執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽還包括,在生成主組件布局開始代碼后,生成單一對(duì)象的主組件內(nèi)容代碼;或者,所述執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽還包括,生成單一對(duì)象的主組件內(nèi)容代碼,然后再執(zhí)行所述獲得布局管理器的操作;或者,所述執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽還包括,在生成組件布局開始代碼后生成主組件內(nèi)容開始代碼,所述執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽還包括,生成主組件內(nèi)容結(jié)束代碼然后再執(zhí)行所述獲得布局管理器的操作。9、根據(jù)權(quán)利要求7所述的頁(yè)面控件布局方法,其特征在于所述獲取組件標(biāo)簽中的前組件的步驟中,獲取的前組件為一個(gè)以上,分別生成各個(gè)前組件的前組件布局開始代碼和前組件布局結(jié)束代碼,然后再執(zhí)行所述生成主組件布局開始代碼的步驟;和/或,所述獲取組件標(biāo)簽中的后組件的步驟中,獲取的后組件為一個(gè)以上,分別生成各個(gè)后組件的后組件布局開始代碼和后組件布局結(jié)束代碼。10、根據(jù)權(quán)利要求1~3任意一項(xiàng)所述的頁(yè)面控件布局方法,其特征在于,所述組件標(biāo)簽中包括一個(gè)或一個(gè)以上的組件;所述調(diào)用布局管理器生成與組件標(biāo)簽關(guān)聯(lián)的組件布局開始代碼和組件布局結(jié)束代碼具體為執(zhí)行所述組件標(biāo)簽的組件開始標(biāo)簽;執(zhí)行所述組件標(biāo)簽的組件結(jié)束標(biāo)簽,包括,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器;獲取所述組件標(biāo)簽中的各個(gè)組件;調(diào)用所述布局管理器分別生成各個(gè)組件的組件布局開始代碼和組件布局結(jié)束代碼。11、根據(jù)權(quán)利要求10所述的頁(yè)面控件布局方法,其特征在于所述執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽還包括,在生成各個(gè)組件的組件布局開始代碼和組件布局結(jié)束代碼的步驟之間,生成單一對(duì)象的組件內(nèi)容代碼或分別生成組件內(nèi)容開始代碼和組件內(nèi)容結(jié)束代碼。12、一種用于通過Java服務(wù)頁(yè)面標(biāo)簽生成超文本置標(biāo)語(yǔ)言代碼的裝置,其特征在于,包括Java服務(wù)頁(yè)面引擎、容器執(zhí)行單元和組件執(zhí)行單元;所述Java服務(wù)頁(yè)面引擎,用于執(zhí)行Java服務(wù)頁(yè)面文件,在執(zhí)行到容器標(biāo)簽時(shí)調(diào)用所述容器執(zhí)行單元進(jìn)行執(zhí)行,在執(zhí)行到組件標(biāo)簽時(shí),調(diào)用所述組件執(zhí)行單元進(jìn)行執(zhí)行;所述容器執(zhí)行單元,具有獲取布局管理器的接口,用于根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行容器標(biāo)簽的容器開始標(biāo)簽時(shí)的調(diào)用,調(diào)用與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局開始代碼;根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行容器標(biāo)簽的容器結(jié)束標(biāo)簽時(shí)的調(diào)用,調(diào)用與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器生成布局結(jié)束代碼;所述組件執(zhí)行單元,具有獲取布局管理器的接口,用于根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行組件標(biāo)簽時(shí)的調(diào)用,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用所述布局管理器生成與所述組件標(biāo)簽關(guān)聯(lián)的組件布局開始代碼和組件布局結(jié)束代碼。13、根據(jù)權(quán)利要求12所述的裝置,其特征在于所述容器執(zhí)行單元還具有設(shè)置布局管理器的接口;所述容器執(zhí)行單元還用于,根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行容器標(biāo)簽時(shí)的調(diào)用,對(duì)與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器進(jìn)行設(shè)置。14、根據(jù)權(quán)利要求12或13所述的裝置,其特征在于,所述組件執(zhí)行單元包括第一開始單元,用于根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽時(shí)的調(diào)用,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用所述布局管理器生成組件布局開始代碼;第一結(jié)束單元,用于根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽時(shí)的調(diào)用,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用所述布局管理器生成組件布局結(jié)束代碼。15、根據(jù)權(quán)利要求12或13所述的裝置,其特征在于,所述組件執(zhí)行單元包括第二開始單元,用于根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽時(shí)的調(diào)用,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器;獲取所述組件標(biāo)簽中的前組件,調(diào)用所述布局管理器生成前組件布局開始代碼和前組件布局結(jié)束代碼;調(diào)用所述布局管理器生成主組件布局開始代碼;第二結(jié)束單元,用于根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽時(shí)的調(diào)用,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器,調(diào)用所述布局管理器生成主組件布局結(jié)束代碼;獲取所述組件標(biāo)簽中的后組件,調(diào)用所述布局管理器生成后組件布局開始代碼和后組件布局結(jié)束代碼。16、根據(jù)權(quán)利要求12或13所述的裝置,其特征在于,所述組件執(zhí)行單元包括第三開始單元,用于根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行組件標(biāo)簽的組件開始標(biāo)簽時(shí)的調(diào)用,執(zhí)行所述組件開始標(biāo)簽;第三結(jié)束單元,用于根據(jù)所述Java服務(wù)頁(yè)面引擎在執(zhí)行組件標(biāo)簽的組件結(jié)束標(biāo)簽時(shí)的調(diào)用,根據(jù)所述組件標(biāo)簽所在的容器標(biāo)簽獲得與所述容器標(biāo)簽對(duì)應(yīng)的布局管理器;獲取所述組件標(biāo)簽中的各個(gè)組件;調(diào)用所述布局管理器分別生成各個(gè)組件的組件布局開始代碼和組件布局結(jié)束代碼。全文摘要本發(fā)明實(shí)施例公開了一種頁(yè)面控件布局方法,使用兩種不同類型的JSP標(biāo)簽容器標(biāo)簽和組件標(biāo)簽,將布局邏輯從組件標(biāo)簽中剝離出來,通過組件標(biāo)簽所在的容器標(biāo)簽找到對(duì)應(yīng)的布局管理器實(shí)現(xiàn)組件標(biāo)簽的布局。本發(fā)明實(shí)施例還提供用于通過JSP標(biāo)簽生成HTML代碼的裝置。本發(fā)明實(shí)施例由于采用與容器標(biāo)簽關(guān)聯(lián)的布局管理器負(fù)責(zé)布局代碼的生成,使得開發(fā)人員無需直接編寫布局代碼,開發(fā)簡(jiǎn)單;并且,組件標(biāo)簽自身與布局邏輯無關(guān),可通過不同的容器標(biāo)簽實(shí)現(xiàn)不同的布局需求,使用靈活而不易出錯(cuò)。文檔編號(hào)G06F3/12GK101470591SQ20071030787公開日2009年7月1日申請(qǐng)日期2007年12月29日優(yōu)先權(quán)日2007年12月29日發(fā)明者劉建軍申請(qǐng)人:華為技術(shù)有限公司