基于填空式在线前端逻辑代码编排方法研究及应用
来源:用户上传
作者:
摘要:本文探讨了模板引擎的概念及模板设计的重要性,分析了模板引擎设计中存在的问题,研究了填空式在线前端逻辑代码编排方法的应用。
关键词:模板引擎;代码编排;FreeMarker;模板语言
中图分类号:TP311.5 文献标识码:A 文章编号:1007-9416(2019)12-0043-02
1 技术背景
模板引擎是通过标准的文档生成,将用户界面与业务数据相分离,它主要适用于网站模板引擎,文档主要是指HTML文档。例如在WEB系统开发过程中,程序开发人员及美工人员要明确自身的工作范围和职责。同时,在生成代码时,应通过模板的设置来减轻机械的操作量,提高机械整体的工作效率。模板引擎的产生,是为了满足设计人员的需求,无需了解如何实现程序逻辑,只需要理解自己的界面呈现。但是设计人员必须要学习模板引擎实用方法,包括模板语法,模板变量,甚至有些变量或参数在设计模板时需要跟程序员协商好,该使用哪些变量、如何使用等等。设想一下,如果模板引擎浮躁到一定程度,无异于要设计人员学习一种新的程序语言,而模板页面必定会包含一些类似于ASP、PHP一样的脚本语言,防腐又回到了代码与界面加载在一起的年代,不同的是,这些都是设计人员来做的。所以,发明人认为,模板引擎不能太复杂,但也必须具备一些程序语言的基本语法语句,比如:判断语句、循环语句等等。目前一般的CMS系统所谓的模板标签功能,其解析过程衬不上什么模板引擎,一个好的模板引擎,应该具有通用性、灵活性、拓展性,当然在一个具体的应用中,设计适合自己的模板引擎,就是最好的模板引擎。
2 存在的问题
综上分析,在模板引擎设计中仍存在的技术问题:(1)现有前端业务应用开发效率低。(2)现有前端模板引擎拓展能力差。为了解决以问题,需要构建填空式在线前端逻辑代码编排方法,掌握好编排方法的特征,通过对业务应用前端展现的场景梳理,形成前端常用业务应用场景行为模板,以提升业务应用开发效率。同时以灵活的形式为特殊业务逻辑代码提供扩展能力。
3 编排方法的特征
基于填空式在线前端逻辑代码编排方法,以在线开发的形式提供前端业务展现、交付等代码编排能力,通过对业务应用前端展现的场景梳理形成前端常用业务应用场景行为模板,提升业务应用开发效率,提供统一的、高质量的业务实现框架骨干代码,同时以灵活的整行、多行、插入、行折分等形式提供对特殊业务逻辑代码的扩展能力;此方法具有如下特征:
(1)以模板库形式提供丰富的常用场景前端代码模板,同时为软件资产沉淀提供模板扩展机制;(2)在线编排,在线运行,实时呈现完整前端业务效果,实现开发与运行同步;(3)统一业务场景实现代码框架,保障业务应用实现模式一致性;(4)支持整行、多行、填空等多种形式的业务逻辑代码编排形式;(5)提供动态的在线语法提示与检查;(6)以web形式提供在线操作,无需任何插件、应用安装。
4 基于填空式在线前端逻辑代码编排方法
FreeMarker作为模板引擎中的一种通用工具,其主要是通过数据的改变来生成输出文本,包括配置文件、HTML网页和源代码等。它作为一个Java类库,可以程序员嵌入开发产品的组件,故它并不是直接面向最终用户。
模板编写是一种专用的语言,也称为FreeMarker Template Language(FTL)。它并不需要在真实编程语言中将准备数据(包括数据库查询和业务运算)显示出来,而是其模板可以显示已准备的数据。在以上模板中,可以通过MVC(模型视图控制器)模式的方式来展示相应的数据,见图1所示。
对于动态网页而言,以上模式是一种流行模式。它不仅可以辅助Java程序员将出网页设计师分离出来,且可以减少设计人员的工作量,如不需要采用模板中的复杂逻辑,它可以自动修改页面的样式,不需要程序员重新编译代码。
FreeMarker设计是在MVC模式中所采用的Web开发框架,并能够生成HTML页面,其不需要与Servlet或HTML进行绑定,且不与任意Web绑定,其主要应用于非Web环境当中。
当前,对于FreeMarker来说,主要具有以下特点:
(1)通用性。FreeMarker可生成XML、HTML、Java源代码等各种文本。不需要与Servlet进行绑定,且容易嵌入到产品当中。采用了插件式载入器,故可以从本地文件、数据库等载入模板。用户可以根据需求生成文本,如可以将文本保存到本地文件,同時可以利用Email发送文件,且可以从Web返回至浏览器。(2)模板语言。FreeMarker采用了循环结构,以else/include、if/elseif等常用的指令为主。在FreeMarker模板中,可以根据需求进行变量创建。在任何地方,可利用模板引擎来复杂表达式来表示指定值。可根据位置参数和嵌套内容进行宏命名。可利用名字空间构建可重用的宏库,同时还可以将工程划分为不同的模块,以避免名字出现冲突。可输出转换块,如能够在模板中生成输出,实现HTML转换与压缩,另外,还可以根据自己的转换进行定义。(3)通用数据模型。FreeMarker作为一种模板引擎,它不是通过Java对象直接反射,而是利用Java对象进行插件式对象封装,并可以在模板中以变量方式将它显示。可使用接口的方式来表示XML文档、SQL查询结果和JavaBean等对象,以便于模板开发过程中使用。且它不会受到技术细节的影响。(4)Web准备。可在模板语言中构建WebHTML转义的结构。能够以JSP的替代的身份集成至Model2 Web应用框架中。且可以支持JSP标记库。采用了MVC设计模式,可实现可视化设计,且能够利用程序逻辑进行页面设计。(5)智能的国际化和本地化。FreeMarker实现了字符集智能化,其内部使用UNICODE。实现了数字格式、日期和时间本地化敏感。采用非US字符集,可将它作为变量名。同时还可以以不同语言来构建相同模板。(6)XML处理能力。以2.3版本为例,可通过<#recurse>和<#visit>等指令进行遍历XML树递归。可以通过模板进行XML对象模型访问。
5 结语
综上所述,基于填空式在线前端逻辑代码编排方法,以在线开发的形式提供前端业务展现、交付等代码编排能力,通过对业务应用前端展现的场景梳理形成前端常用业务应用场景行为模板,提升业务应用开发效率,提供统一的、高质量的业务实现框架骨干代码,同时以灵活的整行、多行、插入、行折分等形式提供对特殊业务逻辑代码的扩展能力。
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
转载注明来源:https://www.xzbu.com/8/view-15141142.htm