本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體而言,涉及一種模板標(biāo)簽的管理方法和一種模板標(biāo)簽的管理系統(tǒng)。
背景技術(shù):
在Web應(yīng)用開發(fā)中,軟件開發(fā)人員將更多的精力投入在了重復(fù)的相似勞動中,特別是在如今特別流行的MVC(Model View Controller,模型-視圖-控制器)架構(gòu)模式中,軟件各個層次的功能更加獨立,同時代碼的相似度也更加高,所以需要一種來減少軟件開發(fā)人員重復(fù)勞動的方法,讓程序員將更多的精力放在業(yè)務(wù)邏輯以及其他更加具有創(chuàng)造力的工作上,而模板標(biāo)簽(能夠?qū)崿F(xiàn)Web頁面的模板化)的使用解決了這個問題,但在相關(guān)技術(shù)中的模板標(biāo)簽都是新加的自定義標(biāo)簽,瀏覽器無法識別這些模板標(biāo)簽,從而導(dǎo)致本地環(huán)境用瀏覽器訪問時不能正常應(yīng)用網(wǎng)頁結(jié)構(gòu)樣式和瀏覽頁面真實效果,以致開發(fā)人員不能用簡單便捷的方式修改頁面結(jié)構(gòu)樣式及驗證,進而影響了Web開發(fā)效率。
因此,如何定義瀏覽器識別的模板標(biāo)簽成為亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明正是基于上述技術(shù)問題至少之一,提出了一種新的模板標(biāo)簽的管理方案,在使用瀏覽器瀏覽Web頁面的過程中,瀏覽器能夠識別模板標(biāo)簽,從而避免發(fā)生不能正常應(yīng)用網(wǎng)頁結(jié)構(gòu)樣式和瀏覽頁面真實效果的情況,提高了Web開發(fā)效率。
有鑒于此,本發(fā)明提出了一種模板標(biāo)簽的管理方法,包括:基于模板標(biāo)簽定義Web頁面文件的內(nèi)容,其中,所述模板標(biāo)簽為基于html注釋的標(biāo)簽;在獲取到對所述Web頁面文件的訪問請求時,解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容。
在該技術(shù)方案中,通過基于html注釋的標(biāo)簽作為模板標(biāo)簽來定義Web頁面文件的內(nèi)容,并在獲取到對Web頁面文件的訪問請求時,解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,由于html(hyper text mark-up language,超文本標(biāo)記語言)注釋是html基本語法標(biāo)簽之一,html注釋不會顯示在客戶端瀏覽器中,能夠被瀏覽器識別,且不會被當(dāng)作頁面主體結(jié)構(gòu)標(biāo)簽處理,從而不會影響頁面現(xiàn)有結(jié)構(gòu)樣式的應(yīng)用,從而避免發(fā)生不能正常應(yīng)用網(wǎng)頁結(jié)構(gòu)樣式和瀏覽頁面真實效果的情況,同時也方便開發(fā)人員在瀏覽器模式下簡單快速的驗證對頁面結(jié)構(gòu)、樣式的修改,提高了Web開發(fā)效率。
在上述技術(shù)方案中,優(yōu)選地,所述模板標(biāo)簽包括用于定義符合模板標(biāo)簽規(guī)范的模板標(biāo)簽的基礎(chǔ)語法、用于實現(xiàn)功能代碼封裝的功能模板標(biāo)簽。
在該技術(shù)方案中,功能模板標(biāo)簽提供了相對獨立的功能代碼封裝實現(xiàn),可以簡化代碼、提高代碼復(fù)用性及擴展性,功能模板標(biāo)簽包括塊標(biāo)簽和非塊標(biāo)簽,塊標(biāo)簽在內(nèi)容結(jié)束位置以閉合標(biāo)簽聲明。
在上述任一項技術(shù)方案中,優(yōu)選地,在解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容的步驟之前,還包括:確定所述模板標(biāo)簽的基礎(chǔ)語法中的模板標(biāo)簽前綴;判斷所述模板標(biāo)簽前綴是否與預(yù)設(shè)模板標(biāo)簽前綴相匹配;在所述模板標(biāo)簽前綴與所述預(yù)設(shè)模板標(biāo)簽前綴相匹配時,確定所述模板標(biāo)簽符合模板標(biāo)簽規(guī)范,并執(zhí)行所述解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容的步驟。
在該技術(shù)方案中,通過確定模板標(biāo)簽的基礎(chǔ)語法中的模板標(biāo)簽前綴,并在模板標(biāo)簽前綴與預(yù)設(shè)模板標(biāo)簽前綴相匹配時,確定模板標(biāo)簽符合模板標(biāo)簽規(guī)范,并解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,另外在模板標(biāo)簽前綴與預(yù)設(shè)模板標(biāo)簽前綴不匹配時,不對模板標(biāo)簽進行解析僅將其作為普通注釋,確保只對符合模板標(biāo)簽規(guī)范的模板標(biāo)進行解析,不影響標(biāo)簽原有的特性,從而滿足了不同的設(shè)計需求。
在上述任一項技術(shù)方案中,優(yōu)選地,所述模板標(biāo)簽前綴包括前綴、后綴、介于所述前綴和所述后綴間的預(yù)設(shè)字母及預(yù)設(shè)字符。
在該技術(shù)方案中,模板標(biāo)簽前綴可以根據(jù)設(shè)計需求自定義設(shè)定,如<!--z:tagName-->、<!--x:set-->、<!--x:if-->、<!--x:include-->等,其中,前綴包括<!--,后綴包括-->。
在上述任一項技術(shù)方案中,優(yōu)選地,還包括:基于html標(biāo)簽屬性定義實現(xiàn)對所述模板標(biāo)簽的屬性的定義。
在該技術(shù)方案中,通過基于html標(biāo)簽屬性定義實現(xiàn)對模板標(biāo)簽的屬性的定義,如采用html標(biāo)簽屬性名稱/值(name=“value”)的形式以對模板標(biāo)簽屬性和負(fù)責(zé)功能標(biāo)簽實現(xiàn)所需要的輸入輸出參數(shù)進行定義,擴展性比較強,可以定義一個或多個屬性。
在上述任一項技術(shù)方案中,優(yōu)選地,解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容的步驟具體包括:采用編程語言解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容。
在該技術(shù)方案中,可采用C++、JAVA等多種編程語言解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,確保了該模板標(biāo)簽的實用性。
根據(jù)本發(fā)明的第二方面,提出了一種模板標(biāo)簽的管理系統(tǒng),包括:設(shè)計單元,用于基于模板標(biāo)簽定義Web頁面文件的內(nèi)容,其中,所述模板標(biāo)簽為基于html注釋的標(biāo)簽;解析單元,用于在獲取到對所述Web頁面文件的訪問請求時,解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容。
在該技術(shù)方案中,通過基于html注釋的標(biāo)簽作為模板標(biāo)簽來定義Web頁面文件的內(nèi)容,并在獲取到對Web頁面文件的訪問請求時,解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,由于html注釋是html基本語法標(biāo)簽之一,html注釋不會顯示在客戶端瀏覽器中,能夠被瀏覽器識別,且不會被當(dāng)作頁面主體結(jié)構(gòu)標(biāo)簽處理,從而不會影響頁面現(xiàn)有結(jié)構(gòu)樣式的應(yīng)用,從而避免發(fā)生不能正常應(yīng)用網(wǎng)頁結(jié)構(gòu)樣式和瀏覽頁面真實效果的情況,同時也方便開發(fā)人員在瀏覽器模式下簡單快速的驗證對頁面結(jié)構(gòu)、樣式的修改,提高了Web開發(fā)效率。
在上述技術(shù)方案中,優(yōu)選地,所述模板標(biāo)簽包括用于定義符合模板標(biāo)簽規(guī)范的模板標(biāo)簽的基礎(chǔ)語法、用于實現(xiàn)功能代碼封裝的功能模板標(biāo)簽。
在該技術(shù)方案中,功能模板標(biāo)簽提供了相對獨立的功能代碼封裝實現(xiàn),可以簡化代碼、提高代碼復(fù)用性及擴展性,功能模板標(biāo)簽包括塊標(biāo)簽和非塊標(biāo)簽,塊標(biāo)簽在內(nèi)容結(jié)束位置以閉合標(biāo)簽聲明。
在上述任一項技術(shù)方案中,優(yōu)選地,還包括:確定單元,用于確定所述模板標(biāo)簽的基礎(chǔ)語法中的模板標(biāo)簽前綴;判斷單元,用于判斷所述模板標(biāo)簽前綴是否與預(yù)設(shè)模板標(biāo)簽前綴相匹配;所述解析單元,具體用于在所述模板標(biāo)簽前綴與所述預(yù)設(shè)模板標(biāo)簽前綴相匹配時,確定所述模板標(biāo)簽符合模板標(biāo)簽規(guī)范,并解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容。
在該技術(shù)方案中,通過確定模板標(biāo)簽的基礎(chǔ)語法中的模板標(biāo)簽前綴,并在模板標(biāo)簽前綴與預(yù)設(shè)模板標(biāo)簽前綴相匹配時,確定模板標(biāo)簽符合模板標(biāo)簽規(guī)范,并解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,另外在模板標(biāo)簽前綴與預(yù)設(shè)模板標(biāo)簽前綴不匹配時,不對模板標(biāo)簽進行解析僅將其作為普通注釋,確保只對符合模板標(biāo)簽規(guī)范的模板標(biāo)進行解析,不影響標(biāo)簽原有的特性,從而滿足了不同的設(shè)計需求。
在上述任一項技術(shù)方案中,優(yōu)選地,所述模板標(biāo)簽前綴包括前綴、后綴、介于所述前綴和所述后綴間的預(yù)設(shè)字母及預(yù)設(shè)字符。
在該技術(shù)方案中,模板標(biāo)簽前綴可以根據(jù)設(shè)計需求自定義設(shè)定,如<!--z:tagName-->、<!--x:set-->、<!--x:if-->、<!--x:include-->等,其中,前綴包括<!--,后綴包括-->。
在上述任一項技術(shù)方案中,優(yōu)選地,還包括:屬性定義單元,用于基于html標(biāo)簽屬性定義實現(xiàn)對所述模板標(biāo)簽的屬性的定義。
在該技術(shù)方案中,通過基于html標(biāo)簽屬性定義實現(xiàn)對模板標(biāo)簽的屬性的定義,如采用html標(biāo)簽屬性名稱/值(name=“value”)的形式以對模板標(biāo)簽屬性和負(fù)責(zé)功能標(biāo)簽實現(xiàn)所需要的輸入輸出參數(shù)進行定義,擴展性比較強,可以定義一個或多個屬性。
在上述任一項技術(shù)方案中,優(yōu)選地,所述解析單元具體用于:采用編程語言解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容。
在該技術(shù)方案中,可采用C++、JAVA等多種編程語言解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,確保了該模板標(biāo)簽的實用性。
通過以上技術(shù)方案,在使用瀏覽器瀏覽Web頁面的過程中,瀏覽器能夠識別模板標(biāo)簽,從而避免發(fā)生不能正常應(yīng)用網(wǎng)頁結(jié)構(gòu)樣式和瀏覽頁面真實效果的情況,提高了Web開發(fā)效率。
附圖說明
圖1示出了根據(jù)本發(fā)明的一個實施例的模板標(biāo)簽的管理方法的示意流程圖;
圖2示出了根據(jù)本發(fā)明的實施例的模板標(biāo)簽的管理系統(tǒng)的示意框圖;
圖3示出了根據(jù)本發(fā)明的另一個實施例的模板標(biāo)簽的管理方法的示意流程圖。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式對本發(fā)明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明的保護范圍并不受下面公開的具體實施例的限制。
圖1示出了根據(jù)本發(fā)明的一個實施例的模板標(biāo)簽的管理方法的示意流程圖。
如圖1所示,根據(jù)本發(fā)明的一個實施例的模板標(biāo)簽的管理方法,包括:
步驟102,基于模板標(biāo)簽定義Web頁面文件的內(nèi)容,其中,所述模板標(biāo)簽為基于html注釋的標(biāo)簽;
步驟104,在獲取到對所述Web頁面文件的訪問請求時,解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容。
在該技術(shù)方案中,通過基于html注釋的標(biāo)簽作為模板標(biāo)簽來定義Web頁面文件的內(nèi)容,并在獲取到對Web頁面文件的訪問請求時,解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,由于html注釋是html基本語法標(biāo)簽之一,html注釋不會顯示在客戶端瀏覽器中,能夠被瀏覽器識別,且不會被當(dāng)作頁面主體結(jié)構(gòu)標(biāo)簽處理,從而不會影響頁面現(xiàn)有結(jié)構(gòu)樣式的應(yīng)用,從而避免發(fā)生不能正常應(yīng)用網(wǎng)頁結(jié)構(gòu)樣式和瀏覽頁面真實效果的情況,同時也方便開發(fā)人員在瀏覽器模式下簡單快速的驗證對頁面結(jié)構(gòu)、樣式的修改,提高了Web開發(fā)效率。
在上述技術(shù)方案中,優(yōu)選地,所述模板標(biāo)簽包括用于定義符合模板標(biāo)簽規(guī)范的模板標(biāo)簽的基礎(chǔ)語法、用于實現(xiàn)功能代碼封裝的功能模板標(biāo)簽。
在該技術(shù)方案中,功能模板標(biāo)簽提供了相對獨立的功能代碼封裝實現(xiàn),可以簡化代碼、提高代碼復(fù)用性及擴展性,功能模板標(biāo)簽包括塊標(biāo)簽和非塊標(biāo)簽,塊標(biāo)簽在內(nèi)容結(jié)束位置以閉合標(biāo)簽聲明。
在上述任一項技術(shù)方案中,優(yōu)選地,在解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容的步驟之前,還包括:確定所述模板標(biāo)簽的基礎(chǔ)語法中的模板標(biāo)簽前綴;判斷所述模板標(biāo)簽前綴是否與預(yù)設(shè)模板標(biāo)簽前綴相匹配;在所述模板標(biāo)簽前綴與所述預(yù)設(shè)模板標(biāo)簽前綴相匹配時,確定所述模板標(biāo)簽符合模板標(biāo)簽規(guī)范,并執(zhí)行所述解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容的步驟。
在該技術(shù)方案中,通過確定模板標(biāo)簽的基礎(chǔ)語法中的模板標(biāo)簽前綴,并在模板標(biāo)簽前綴與預(yù)設(shè)模板標(biāo)簽前綴相匹配時,確定模板標(biāo)簽符合模板標(biāo)簽規(guī)范,并解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,另外在模板標(biāo)簽前綴與預(yù)設(shè)模板標(biāo)簽前綴不匹配時,不對模板標(biāo)簽進行解析僅將其作為普通注釋,確保只對符合模板標(biāo)簽規(guī)范的模板標(biāo)進行解析,不影響標(biāo)簽原有的特性,從而滿足了不同的設(shè)計需求。
在上述任一項技術(shù)方案中,優(yōu)選地,所述模板標(biāo)簽前綴包括前綴、后綴、介于所述前綴和所述后綴間的預(yù)設(shè)字母及預(yù)設(shè)字符。
在該技術(shù)方案中,模板標(biāo)簽前綴可以根據(jù)設(shè)計需求自定義設(shè)定,如<!--z:tagName-->、<!--x:set-->、<!--x:if-->、<!--x:include-->等,其中,前綴包括<!--,后綴包括-->。
在上述任一項技術(shù)方案中,優(yōu)選地,還包括:基于html標(biāo)簽屬性定義實現(xiàn)對所述模板標(biāo)簽的屬性的定義。
在該技術(shù)方案中,通過基于html標(biāo)簽屬性定義實現(xiàn)對模板標(biāo)簽的屬性的定義,如采用html標(biāo)簽屬性名稱/值(name=“value”)的形式以對模板標(biāo)簽屬性和負(fù)責(zé)功能標(biāo)簽實現(xiàn)所需要的輸入輸出參數(shù)進行定義,擴展性比較強,可以定義一個或多個屬性。
在上述任一項技術(shù)方案中,優(yōu)選地,解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容的步驟具體包括:采用編程語言解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容。
在該技術(shù)方案中,可采用C++、JAVA等多種編程語言解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,確保了該模板標(biāo)簽的實用性。
圖2示出了根據(jù)本發(fā)明的實施例的模板標(biāo)簽的管理系統(tǒng)的示意框圖。
如圖2所示,根據(jù)本發(fā)明的實施例的模板標(biāo)簽的管理系統(tǒng)200,包括:設(shè)計單元202和解析單元204。
其中,設(shè)計單元202用于基于模板標(biāo)簽定義Web頁面文件的內(nèi)容,其中,所述模板標(biāo)簽為基于html注釋的標(biāo)簽;解析單元204用于在獲取到對所述Web頁面文件的訪問請求時,解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容。
在該技術(shù)方案中,通過基于html注釋的標(biāo)簽作為模板標(biāo)簽來定義Web頁面文件的內(nèi)容,并在獲取到對Web頁面文件的訪問請求時,解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,由于html注釋是html基本語法標(biāo)簽之一,html注釋不會顯示在客戶端瀏覽器中,能夠被瀏覽器識別,且不會被當(dāng)作頁面主體結(jié)構(gòu)標(biāo)簽處理,從而不會影響頁面現(xiàn)有結(jié)構(gòu)樣式的應(yīng)用,從而避免發(fā)生不能正常應(yīng)用網(wǎng)頁結(jié)構(gòu)樣式和瀏覽頁面真實效果的情況,同時也方便開發(fā)人員在瀏覽器模式下簡單快速的驗證對頁面結(jié)構(gòu)、樣式的修改,提高了Web開發(fā)效率。
在上述技術(shù)方案中,優(yōu)選地,所述模板標(biāo)簽包括用于定義符合模板標(biāo)簽規(guī)范的模板標(biāo)簽的基礎(chǔ)語法、用于實現(xiàn)功能代碼封裝的功能模板標(biāo)簽。
在該技術(shù)方案中,功能模板標(biāo)簽提供了相對獨立的功能代碼封裝實現(xiàn),可以簡化代碼、提高代碼復(fù)用性及擴展性,功能模板標(biāo)簽包括塊標(biāo)簽和非塊標(biāo)簽,塊標(biāo)簽在內(nèi)容結(jié)束位置以閉合標(biāo)簽聲明。
在上述任一項技術(shù)方案中,優(yōu)選地,還包括:確定單元206,用于確定所述模板標(biāo)簽的基礎(chǔ)語法中的模板標(biāo)簽前綴;判斷單元208,用于判斷所述模板標(biāo)簽前綴是否與預(yù)設(shè)模板標(biāo)簽前綴相匹配;所述解析單元204,具體用于在所述模板標(biāo)簽前綴與所述預(yù)設(shè)模板標(biāo)簽前綴相匹配時,確定所述模板標(biāo)簽符合模板標(biāo)簽規(guī)范,并解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容。
在該技術(shù)方案中,通過確定模板標(biāo)簽的基礎(chǔ)語法中的模板標(biāo)簽前綴,并在模板標(biāo)簽前綴與預(yù)設(shè)模板標(biāo)簽前綴相匹配時,確定模板標(biāo)簽符合模板標(biāo)簽規(guī)范,并解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,另外在模板標(biāo)簽前綴與預(yù)設(shè)模板標(biāo)簽前綴不匹配時,不對模板標(biāo)簽進行解析僅將其作為普通注釋,確保只對符合模板標(biāo)簽規(guī)范的模板標(biāo)進行解析,不影響標(biāo)簽原有的特性,從而滿足了不同的設(shè)計需求。
在上述任一項技術(shù)方案中,優(yōu)選地,所述模板標(biāo)簽前綴包括前綴、后綴、介于所述前綴和所述后綴間的預(yù)設(shè)字母及預(yù)設(shè)字符。
在該技術(shù)方案中,模板標(biāo)簽前綴可以根據(jù)設(shè)計需求自定義設(shè)定,如<!--z:tagName-->、<!--x:set-->、<!--x:if-->、<!--x:include-->等,其中,前綴包括<!--,后綴包括-->。
在上述任一項技術(shù)方案中,優(yōu)選地,還包括:屬性定義單元210,用于基于html標(biāo)簽屬性定義實現(xiàn)對所述模板標(biāo)簽的屬性的定義。
在該技術(shù)方案中,通過基于html標(biāo)簽屬性定義實現(xiàn)對模板標(biāo)簽的屬性的定義,如采用html標(biāo)簽屬性名稱/值(name=“value”)的形式以對模板標(biāo)簽屬性和負(fù)責(zé)功能標(biāo)簽實現(xiàn)所需要的輸入輸出參數(shù)進行定義,擴展性比較強,可以定義一個或多個屬性。
在上述任一項技術(shù)方案中,優(yōu)選地,所述解析單元204具體用于:采用編程語言解析所述模板標(biāo)簽以得到所述Web頁面文件的內(nèi)容。
在該技術(shù)方案中,可采用C++、JAVA等多種編程語言解析模板標(biāo)簽以得到Web頁面文件的內(nèi)容,確保了該模板標(biāo)簽的實用性。
以下對本發(fā)明的技術(shù)方案作進一步說明。
在本實施例中,可基于注釋化模板標(biāo)簽來實現(xiàn)Web頁面的模板化,主要包括兩方面組成:一方面是基于html注釋的模板標(biāo)簽定義;另一方面是模板解析引擎,負(fù)責(zé)對頁面讀取、模板標(biāo)簽分析、標(biāo)簽預(yù)定義邏輯處理。html注釋是html基本語法標(biāo)簽之一,用于在源代碼中插入注釋,注釋不會顯示在客戶端瀏覽器中,所以采用html注釋化標(biāo)簽作為模板標(biāo)簽基礎(chǔ)。
其中,基于html注釋的模板標(biāo)簽定義是基于html注釋化標(biāo)簽語法,該標(biāo)簽是使用簡單、為人所熟知的一個基本標(biāo)簽,在這基礎(chǔ)上進行自定義標(biāo)簽規(guī)則定義,降低了學(xué)習(xí)認(rèn)識門檻,易于讓開發(fā)人員接受學(xué)習(xí),基于html注釋的模板標(biāo)簽定義如下:
1θ<html>
2θ<head>
3<meta charset=“utf-8”/>
4<title>if expression example</title>
5</head>
6θ<body>
7<!--下面代碼為if判斷標(biāo)簽-->
8<!—z:if test=“$request.uid|isNone|not”-->
9請求的uid值為:{$request.uid}
10<!--z:end-->
11</body>
12</html>
上述的基于html注釋的模板標(biāo)簽定義僅為舉例說明,并不具體內(nèi)容進行限定,其中基于html注釋的模板標(biāo)簽定義包括基礎(chǔ)語法定義、功能模板標(biāo)簽定義。
基礎(chǔ)語法定義,是定義注釋標(biāo)簽是否符合模板標(biāo)簽規(guī)范,符合則交付模板引擎解析,不符合則當(dāng)普通注釋標(biāo)簽處理。
判斷注釋標(biāo)簽是否符合模板標(biāo)簽規(guī)范的關(guān)鍵步驟就是在模板引擎中定義一個全局的模板標(biāo)簽前綴,如:定義模板標(biāo)簽前綴為“z”,那么基礎(chǔ)語法如下:<!--z:tagName-->,模板標(biāo)簽前綴也可以采用其他設(shè)計方法,例如,可以定義除了html注釋語法前綴“<!--”和后綴“-->”以外的任意字母及字符的組合,如:<!--x:set-->、<!--x:if-->、<!--x:include-->等。
功能模板標(biāo)簽定義,功能模板標(biāo)簽提供了相對獨立的功能代碼封裝實現(xiàn),可以到達簡化代碼、提高代碼復(fù)用性、擴展性等效果,如:分頁功能,分頁功能在web開發(fā)中非常常見,而且分頁實現(xiàn)的過程大同小異,可以使用功能模板標(biāo)簽的引入來簡化和過程代碼的重復(fù)實現(xiàn),如:可通過<!--z:page pageIndex=""pageSize=""row Count=""pageAction=""-->將分頁功能變化部分參數(shù)采用標(biāo)簽屬性的方式傳入,這樣每個需要用到分頁的地方只需簡單的引入分頁標(biāo)簽就可以實現(xiàn)分頁功能的顯示和操作。
功能模板標(biāo)簽包括塊標(biāo)簽和非塊標(biāo)簽,塊標(biāo)簽在內(nèi)容結(jié)束位置以閉合標(biāo)簽聲明。比如閉合標(biāo)簽使用“end”命名,如:<!--z:end-->。
功能模板標(biāo)簽屬性定義,采用html標(biāo)簽屬性名稱/值對的形式,如:name="value",實現(xiàn)對模板標(biāo)簽屬性定義和負(fù)責(zé)功能標(biāo)簽實現(xiàn)所需要的輸入輸出參數(shù)定義,擴展性強,可以定義一個或多個屬性,如:<!--z:tagName attrName1=“attrValue1”attrName2=“attrValue2”-->。
屬性定義也是注釋化模板標(biāo)簽的關(guān)鍵實現(xiàn)之一,在本實施例中提供了基礎(chǔ)默認(rèn)屬性實現(xiàn),很大程度簡化了開發(fā)代碼量和提高了開發(fā)效率。
如在本實施例中提供了默認(rèn)屬性有“標(biāo)簽執(zhí)行前置條件判斷屬性”,在實現(xiàn)條件判斷時僅需添加前置條件判斷屬性:
<u1>
<!--z:for scope=“$userList”var=“user”condition=“$user.age|eq:20”-->
<li>
<span>姓名:{$user.userName}</span>
<span>年齡:{$user.age}</span>
<span>地址:{$user.adress}</span>
<span>電話:{$user.tel}</span>
</li>
<!--z:end-->
</u1>
而傳統(tǒng)模板標(biāo)簽實現(xiàn)條件判斷需要添加一對判斷模板標(biāo)簽:
<u1>
<#list userList as user>
<#if age==“20”>
<li>
<span>姓名:{$user.userName}</span>
<span>年齡:{$user.age}</span>
<span>地址:{$user.adress}</span>
<span>電話:{$user.tel}</span>
</li>
</#if>
</#list>
</u1>
基于上述實例,注釋化模板標(biāo)簽的使用明顯要比其他傳統(tǒng)模板標(biāo)簽要精簡。
每一個功能標(biāo)簽代表了一種特定功能實現(xiàn),并通過解析引擎注冊定義功能標(biāo)簽名稱,標(biāo)簽名稱不能重復(fù),比如實現(xiàn)對集合數(shù)據(jù)的遍歷標(biāo)簽,注冊標(biāo)簽名稱為“for”,集合標(biāo)簽是塊標(biāo)簽,那么該標(biāo)簽使用示例如下:
<!--z:for-->
Block content
<!--z:end-->
在本實施例中,模板解析引擎提供了常用標(biāo)簽使用,有變量定義、集合遍歷、條件判斷,頁面包含、頁面跳轉(zhuǎn)等標(biāo)簽,同時提供了擴展自定義標(biāo)簽注冊接口,開發(fā)人員根據(jù)需要定制通用模板標(biāo)簽或與業(yè)務(wù)場景相關(guān)實現(xiàn)標(biāo)簽,模板解析引擎處理流程具體如圖3所示,包括:
步驟302,模板引擎攔截器攔截Web請求。
步驟304,分析請求相應(yīng)web文件是否需要進行模板標(biāo)簽解析,若是,執(zhí)行步驟306;否則,執(zhí)行步驟308。
步驟306,模板解析引擎讀取模板并分析模板內(nèi)容,并將解析后的內(nèi)容返回給請求方。
步驟308,不對模板標(biāo)簽進行解析。
在常見傳統(tǒng)模板標(biāo)簽中,其都是新定義的自定義標(biāo)簽,以下舉例說明,如:
<#list userList as user>
<tr class=“teacherListtr”style=“background:rgb(248,248,248);>
<td><input name=“selectedItem”type=“checkbox”data-status=“1”value=“{$user.id}”></td>
<td>{$user.loginId}</td>
<td>{$user.name}</td>
……
</td>
</tr>
</list>
可見,采用新定義的自定義標(biāo)簽的模板標(biāo)簽,在增加了頁面結(jié)構(gòu)標(biāo)簽同時,也增加了結(jié)構(gòu)的復(fù)雜度,有時也影響了結(jié)構(gòu)樣式應(yīng)用,導(dǎo)致在本地瀏覽器模式下無法正常瀏覽頁面真實效果,以致于開發(fā)人員不能用簡單便捷的方式修改頁面結(jié)構(gòu)樣式及驗證,從而影響了開發(fā)效率。
而采用html注釋的標(biāo)簽作為模板標(biāo)簽,如:
<!--z:for scope=“$userList”var=“user”desc=“遍歷用戶”-->
<tr class=“teacherListtr”style=“background:rgb(248,248,248);>
<td><input name=“selectedItem”type=“checkbox”data-status=“1”value=“{$user.id}”></td>
<td>{$user.loginId}</td>
<td>{$user.name}</td>
……
</td>
</tr>
<!--z:end-->
該html注釋的模板標(biāo)簽定義僅為舉例說明,并不具體內(nèi)容進行限定,其不會增加代碼結(jié)構(gòu)的復(fù)雜度,只有在符合注釋化模板標(biāo)簽規(guī)則才會進行標(biāo)簽邏輯解析,不符合則作為普通注釋處理,不會影響標(biāo)簽原有的特性,且由于不是新加的自定義標(biāo)簽,所以不會影響頁面現(xiàn)有結(jié)構(gòu)樣式的應(yīng)用,同時也方便開發(fā)人員在瀏覽器模式下簡單快速的驗證對頁面結(jié)構(gòu)、樣式的修改。
具體地,整個實施過程主要涉及兩方面:1:搭建引擎環(huán)境,2:在web文件添加定義注釋化標(biāo)簽,具體示例步驟如下:
步驟一:在項目環(huán)境引入模板引擎環(huán)境,如在Java環(huán)境下,在項目工程環(huán)境引入模板引擎所需環(huán)境包,并配置模板引擎攔截器攔截模板請求。
步驟二:在web文件中,使用注釋化模板標(biāo)簽定義web文件內(nèi)容。
步驟三:運行web環(huán)境,并使用http訪問模板頁面請求,模板解析引擎解析模板標(biāo)簽并返回解析后的結(jié)果內(nèi)容。
根據(jù)上述實施例,采用html注釋化標(biāo)簽作為模板標(biāo)簽基礎(chǔ),有以下優(yōu)點:
1、注釋標(biāo)簽是開發(fā)人員所熟知,所以基于注釋的模板標(biāo)簽可以降低開發(fā)人員的學(xué)習(xí)門檻。
2、注釋化模板標(biāo)簽不是新增加的自定義標(biāo)簽,不會增加頁面結(jié)構(gòu)的復(fù)雜度。
3、注釋化模板標(biāo)簽是基于html注釋,瀏覽器能夠識別該標(biāo)簽,在本地使用瀏覽器瀏覽模板頁面時,瀏覽器會把注釋化模板標(biāo)簽視做普通注釋處理,不會把注釋化模板標(biāo)簽當(dāng)作頁面主體結(jié)構(gòu)標(biāo)簽處理,從而不會影響頁面現(xiàn)有結(jié)構(gòu)樣式的應(yīng)用,也方便開發(fā)人員在本瀏覽器模式下簡單快速的驗證對頁面結(jié)構(gòu)、樣式的修改。
4、注釋化標(biāo)簽對輸入輸出參數(shù)定義與html標(biāo)簽屬性定義一致,采用html標(biāo)簽屬性名稱/值對的形式,這種方式有利于屬性定義的擴展,也容易讓開發(fā)人員入手和學(xué)習(xí),注釋化標(biāo)簽對值的定義也可以采取現(xiàn)有或未來開發(fā)的其他定義方式,只要其語法基礎(chǔ)是html注釋。
以上結(jié)合附圖詳細說明了本發(fā)明的技術(shù)方案,本發(fā)明的技術(shù)方案提出了一種新的模板標(biāo)簽的管理方案,在使用瀏覽器瀏覽Web頁面的過程中,瀏覽器能夠識別模板標(biāo)簽,從而避免發(fā)生不能正常應(yīng)用網(wǎng)頁結(jié)構(gòu)樣式和瀏覽頁面真實效果的情況,提高了Web開發(fā)效率。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。