国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于填空式在線前端邏輯代碼編排方法研究及應(yīng)用

2019-03-30 03:49:19吳爭(zhēng)榮梁耀文徐長(zhǎng)飛

吳爭(zhēng)榮 梁耀文 徐長(zhǎng)飛

摘要:本文探討了模板引擎的概念及模板設(shè)計(jì)的重要性,分析了模板引擎設(shè)計(jì)中存在的問題,研究了填空式在線前端邏輯代碼編排方法的應(yīng)用。

關(guān)鍵詞:模板引擎;代碼編排;FreeMarker;模板語言

中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2019)12-0043-02

1 技術(shù)背景

模板引擎是通過標(biāo)準(zhǔn)的文檔生成,將用戶界面與業(yè)務(wù)數(shù)據(jù)相分離,它主要適用于網(wǎng)站模板引擎,文檔主要是指HTML文檔。例如在WEB系統(tǒng)開發(fā)過程中,程序開發(fā)人員及美工人員要明確自身的工作范圍和職責(zé)。同時(shí),在生成代碼時(shí),應(yīng)通過模板的設(shè)置來減輕機(jī)械的操作量,提高機(jī)械整體的工作效率。模板引擎的產(chǎn)生,是為了滿足設(shè)計(jì)人員的需求,無需了解如何實(shí)現(xiàn)程序邏輯,只需要理解自己的界面呈現(xiàn)。但是設(shè)計(jì)人員必須要學(xué)習(xí)模板引擎實(shí)用方法,包括模板語法,模板變量,甚至有些變量或參數(shù)在設(shè)計(jì)模板時(shí)需要跟程序員協(xié)商好,該使用哪些變量、如何使用等等。設(shè)想一下,如果模板引擎浮躁到一定程度,無異于要設(shè)計(jì)人員學(xué)習(xí)一種新的程序語言,而模板頁面必定會(huì)包含一些類似于ASP、PHP一樣的腳本語言,防腐又回到了代碼與界面加載在一起的年代,不同的是,這些都是設(shè)計(jì)人員來做的。所以,發(fā)明人認(rèn)為,模板引擎不能太復(fù)雜,但也必須具備一些程序語言的基本語法語句,比如:判斷語句、循環(huán)語句等等。目前一般的CMS系統(tǒng)所謂的模板標(biāo)簽功能,其解析過程襯不上什么模板引擎,一個(gè)好的模板引擎,應(yīng)該具有通用性、靈活性、拓展性,當(dāng)然在一個(gè)具體的應(yīng)用中,設(shè)計(jì)適合自己的模板引擎,就是最好的模板引擎。

2 存在的問題

綜上分析,在模板引擎設(shè)計(jì)中仍存在的技術(shù)問題:(1)現(xiàn)有前端業(yè)務(wù)應(yīng)用開發(fā)效率低。(2)現(xiàn)有前端模板引擎拓展能力差。為了解決以問題,需要構(gòu)建填空式在線前端邏輯代碼編排方法,掌握好編排方法的特征,通過對(duì)業(yè)務(wù)應(yīng)用前端展現(xiàn)的場(chǎng)景梳理,形成前端常用業(yè)務(wù)應(yīng)用場(chǎng)景行為模板,以提升業(yè)務(wù)應(yīng)用開發(fā)效率。同時(shí)以靈活的形式為特殊業(yè)務(wù)邏輯代碼提供擴(kuò)展能力。

3 編排方法的特征

基于填空式在線前端邏輯代碼編排方法,以在線開發(fā)的形式提供前端業(yè)務(wù)展現(xiàn)、交付等代碼編排能力,通過對(duì)業(yè)務(wù)應(yīng)用前端展現(xiàn)的場(chǎng)景梳理形成前端常用業(yè)務(wù)應(yīng)用場(chǎng)景行為模板,提升業(yè)務(wù)應(yīng)用開發(fā)效率,提供統(tǒng)一的、高質(zhì)量的業(yè)務(wù)實(shí)現(xiàn)框架骨干代碼,同時(shí)以靈活的整行、多行、插入、行折分等形式提供對(duì)特殊業(yè)務(wù)邏輯代碼的擴(kuò)展能力;此方法具有如下特征:

(1)以模板庫形式提供豐富的常用場(chǎng)景前端代碼模板,同時(shí)為軟件資產(chǎn)沉淀提供模板擴(kuò)展機(jī)制;(2)在線編排,在線運(yùn)行,實(shí)時(shí)呈現(xiàn)完整前端業(yè)務(wù)效果,實(shí)現(xiàn)開發(fā)與運(yùn)行同步;(3)統(tǒng)一業(yè)務(wù)場(chǎng)景實(shí)現(xiàn)代碼框架,保障業(yè)務(wù)應(yīng)用實(shí)現(xiàn)模式一致性;(4)支持整行、多行、填空等多種形式的業(yè)務(wù)邏輯代碼編排形式;(5)提供動(dòng)態(tài)的在線語法提示與檢查;(6)以web形式提供在線操作,無需任何插件、應(yīng)用安裝。

4 基于填空式在線前端邏輯代碼編排方法

FreeMarker作為模板引擎中的一種通用工具,其主要是通過數(shù)據(jù)的改變來生成輸出文本,包括配置文件、HTML網(wǎng)頁和源代碼等。它作為一個(gè)Java類庫,可以程序員嵌入開發(fā)產(chǎn)品的組件,故它并不是直接面向最終用戶。

模板編寫是一種專用的語言,也稱為FreeMarker Template Language(FTL)。它并不需要在真實(shí)編程語言中將準(zhǔn)備數(shù)據(jù)(包括數(shù)據(jù)庫查詢和業(yè)務(wù)運(yùn)算)顯示出來,而是其模板可以顯示已準(zhǔn)備的數(shù)據(jù)。在以上模板中,可以通過MVC(模型視圖控制器)模式的方式來展示相應(yīng)的數(shù)據(jù),見圖1所示。

對(duì)于動(dòng)態(tài)網(wǎng)頁而言,以上模式是一種流行模式。它不僅可以輔助Java程序員將出網(wǎng)頁設(shè)計(jì)師分離出來,且可以減少設(shè)計(jì)人員的工作量,如不需要采用模板中的復(fù)雜邏輯,它可以自動(dòng)修改頁面的樣式,不需要程序員重新編譯代碼。

FreeMarker設(shè)計(jì)是在MVC模式中所采用的Web開發(fā)框架,并能夠生成HTML頁面,其不需要與Servlet或HTML進(jìn)行綁定,且不與任意Web綁定,其主要應(yīng)用于非Web環(huán)境當(dāng)中。

當(dāng)前,對(duì)于FreeMarker來說,主要具有以下特點(diǎn):

(1)通用性。FreeMarker可生成XML、HTML、Java源代碼等各種文本。不需要與Servlet進(jìn)行綁定,且容易嵌入到產(chǎn)品當(dāng)中。采用了插件式載入器,故可以從本地文件、數(shù)據(jù)庫等載入模板。用戶可以根據(jù)需求生成文本,如可以將文本保存到本地文件,同時(shí)可以利用Email發(fā)送文件,且可以從Web返回至瀏覽器。(2)模板語言。FreeMarker采用了循環(huán)結(jié)構(gòu),以else/include、if/elseif等常用的指令為主。在FreeMarker模板中,可以根據(jù)需求進(jìn)行變量創(chuàng)建。在任何地方,可利用模板引擎來復(fù)雜表達(dá)式來表示指定值??筛鶕?jù)位置參數(shù)和嵌套內(nèi)容進(jìn)行宏命名??衫妹挚臻g構(gòu)建可重用的宏庫,同時(shí)還可以將工程劃分為不同的模塊,以避免名字出現(xiàn)沖突??奢敵鲛D(zhuǎn)換塊,如能夠在模板中生成輸出,實(shí)現(xiàn)HTML轉(zhuǎn)換與壓縮,另外,還可以根據(jù)自己的轉(zhuǎn)換進(jìn)行定義。(3)通用數(shù)據(jù)模型。FreeMarker作為一種模板引擎,它不是通過Java對(duì)象直接反射,而是利用Java對(duì)象進(jìn)行插件式對(duì)象封裝,并可以在模板中以變量方式將它顯示。可使用接口的方式來表示XML文檔、SQL查詢結(jié)果和JavaBean等對(duì)象,以便于模板開發(fā)過程中使用。且它不會(huì)受到技術(shù)細(xì)節(jié)的影響。(4)Web準(zhǔn)備??稍谀0逭Z言中構(gòu)建WebHTML轉(zhuǎn)義的結(jié)構(gòu)。能夠以JSP的替代的身份集成至Model2 Web應(yīng)用框架中。且可以支持JSP標(biāo)記庫。采用了MVC設(shè)計(jì)模式,可實(shí)現(xiàn)可視化設(shè)計(jì),且能夠利用程序邏輯進(jìn)行頁面設(shè)計(jì)。(5)智能的國(guó)際化和本地化。FreeMarker實(shí)現(xiàn)了字符集智能化,其內(nèi)部使用UNICODE。實(shí)現(xiàn)了數(shù)字格式、日期和時(shí)間本地化敏感。采用非US字符集,可將它作為變量名。同時(shí)還可以以不同語言來構(gòu)建相同模板。(6)XML處理能力。以2.3版本為例,可通過<#recurse>和<#visit>等指令進(jìn)行遍歷XML樹遞歸。可以通過模板進(jìn)行XML對(duì)象模型訪問。

5 結(jié)語

綜上所述,基于填空式在線前端邏輯代碼編排方法,以在線開發(fā)的形式提供前端業(yè)務(wù)展現(xiàn)、交付等代碼編排能力,通過對(duì)業(yè)務(wù)應(yīng)用前端展現(xiàn)的場(chǎng)景梳理形成前端常用業(yè)務(wù)應(yīng)用場(chǎng)景行為模板,提升業(yè)務(wù)應(yīng)用開發(fā)效率,提供統(tǒng)一的、高質(zhì)量的業(yè)務(wù)實(shí)現(xiàn)框架骨干代碼,同時(shí)以靈活的整行、多行、插入、行折分等形式提供對(duì)特殊業(yè)務(wù)邏輯代碼的擴(kuò)展能力。

Research and Application of? On-line Front-end Logic Code Arrangement Method based on Fill in Blank

WU Zheng-rong, LIANG Yao-wen, XU Chang-fei

(China Southern Power Grid Co., Ltd., Guangzhou? Guangdong? 510623)

Abstract:This paper discusses the concept of template engine and the importance of template design, analyzes the problems in template engine design, and studies the application of fill in front-end logic code arrangement method.

Key words:template engine; coding; FreeMarker; template language

中牟县| 谷城县| 武夷山市| 库车县| 汪清县| 晋城| 包头市| 枣强县| 云龙县| 绥宁县| 麻阳| 遂溪县| 皋兰县| 平舆县| 南开区| 汝州市| 姚安县| 沾益县| 阳泉市| 忻城县| 松桃| 张家口市| 沭阳县| 桦甸市| 十堰市| 西充县| 蓝山县| 祁阳县| 阜南县| 兰坪| 伊川县| 库伦旗| 财经| 弥渡县| 阿尔山市| 察雅县| 五寨县| 封丘县| 汉寿县| 镇巴县| 奇台县|