CN110889270A - 一种表单页面文档生成方法、表单页面渲染方法及装置 - Google Patents
一种表单页面文档生成方法、表单页面渲染方法及装置 Download PDFInfo
- Publication number
- CN110889270A CN110889270A CN201810936444.4A CN201810936444A CN110889270A CN 110889270 A CN110889270 A CN 110889270A CN 201810936444 A CN201810936444 A CN 201810936444A CN 110889270 A CN110889270 A CN 110889270A
- Authority
- CN
- China
- Prior art keywords
- page document
- configuration
- code
- target
- form page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
本申请提供了一种表单页面文档生成方法、表单页面渲染方法及装置,涉及信息技术领域。本申请通过获取包括表单元素的配置信息的配置文件,并根据表单元素的配置信息,生成表单元素的代码,进而根据表单元素的代码,和提供的解析脚本,生成目标表单页面文档。在需要生成表单页面文档时,可以事先定义表单元素的配置文件,然后可以基于配置文件以及用于解析表单代码的解析脚本,生成用于渲染表单页面的目标表单页面文档,在配置文件中对表单元素的配置信息进行修改即可,降低了开发时间,无需在表单页面代码中对已有的逻辑进行调整,提高了表单开发的灵活性和复用性。
Description
技术领域
本申请涉及信息技术领域,特别是涉及一种表单页面文档生成方法、表单页面渲染方法及装置。
背景技术
表单是Web页面上常用的一种数据采集工具,可以用于收集用户的信息,例如用户可以通过表单网页填写调查问卷、编辑订单等等,表单是网站服务端和页面访问者之间沟通的桥梁。
目前,表单在网页中的展示,通常需要开发人员按照不同的需求,手动编写各种表单,并根据不同的业务场景,开发不同的表单元素。在实际应用中,开发人员需要手动调整每个表单页面的页面代码,开发效率低下,并且在调整页面代码时会涉及到对代码中已有逻辑的不断调整,表单开发的灵活性和复用性差。
发明内容
鉴于上述问题,本申请实施例提供一种表单页面文档生成方法,以通过获取配置文件,并根据配置文件中表单元素的配置信息,生成表单元素的代码,进而根据表单元素的代码和提供的解析脚本,生成目标表单页面文档,解决现有技术中通过调整表单页面文档的方式进行表单开发,导致开发效率低下,且表单开发的灵活性和复用性差的问题。
相应的,本申请实施例还提供了一种表单页面文档生成装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种表单页面文档生成方法,包括:
获取配置文件;所述配置文件中包括表单元素的配置信息;
根据所述表单元素的配置信息,生成表单元素的代码;
根据所述表单元素的代码,和提供的解析脚本,生成目标表单页面文档。
相应的,本申请实施例还公开了一种表单页面文档生成装置,包括:
第一获取模块,用于获取配置文件;所述配置文件中包括表单元素的配置信息;
第一生成模块,用于根据所述表单元素的配置信息,生成表单元素的代码;
第二生成模块,用于根据所述表单元素的代码,和提供的解析脚本,生成目标表单页面文档。
相应的,本申请实施例还公开了一种装置,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行上述表单页面文档生成方法。
相应的,本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述表单页面文档生成方法。
为了解决上述问题,本申请实施例还公开了一种表单页面渲染方法,包括:
获取目标表单页面文档;所述目标表单页面文档中包括解析脚本以及表单元素的代码;所述目标表单页面文档基于配置文件中的表单元素的配置信息获得;
调用所述解析脚本解析所述表单元素的代码。
相应的,本申请实施例还公开了一种表单页面渲染装置,包括:
第二获取模块,用于获取目标表单页面文档;所述目标表单页面文档中包括解析脚本以及表单元素的代码;所述目标表单页面文档基于配置文件中的表单元素的配置信息获得;
调用模块,用于调用所述解析脚本解析所述表单元素的代码。
相应的,本申请实施例还公开了一种装置,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行上述表单页面渲染方法。
相应的,本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述表单页面渲染方法。
本申请实施例包括以下优点:
本申请实施例通过获取包括表单元素的配置信息的配置文件,并根据表单元素的配置信息生成表单元素的代码,进而根据表单元素的代码和提供的解析脚本,生成目标表单页面文档。在需要生成表单页面文档时,可以事先定义表单元素的配置文件,然后可以基于配置文件以及用于解析表单元素代码的解析脚本,生成用于渲染表单页面的目标表单页面文档,而无需对表单页面文档的代码进行修改,可以在配置文件中对表单元素的配置信息进行修改即可,降低了开发时间,无需在表单页面代码中对已有的逻辑进行调整,提高了表单开发的灵活性和复用性。
附图说明
图1是本申请实施例的一种系统架构的结构框图;
图2是本申请实施例的一种表单页面文档生成方法的处理示意图;
图3是本申请实施例的另一种系统架构的结构框图;
图4是本申请实施例的另一种表单页面文档生成方法的处理示意图;
图5是本申请实施例的一种表单页面文档生成方法的流程图;
图6是本申请实施例的一种表单页面文档生成方法的具体流程图;
图7是本申请实施例的一种表单页面渲染方法的流程图;
图8是本申请实施例的一种表单页面文档生成装置的结构图;
图9是本申请实施例的一种表单页面渲染装置的结构图;
图10是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
在本申请实施例中,终端用户在需要浏览某个表单页面时,可以通过终端向该表单页面对应的应用服务器发送访问请求,以获取渲染该表单页面所需的表单页面文档,然后终端可以利用表单页面文档对表单页面进行渲染,进而终端可以将渲染后的表单页面进行显示,使得用户可以在应用的客户端中浏览到该表单页面,并在该表单页面中填写各类信息,例如个人资料、问卷调查等等。
参照图1,示出了本申请实施例的一种系统架构的结构框图。在图1中,开发人员可以在配置客户端中编写配置文件,并可以将配置文件上传至应用服务器。应用服务器可以直接为多个用户终端提供网页服务,也即应用服务器可以和每个用户终端直接进行交互,图1中仅示例性地示出了3个用户终端。每个用户终端均可以向应用服务器发送表单页面的访问请求,应用服务器在接收到访问请求时,可以基于开发人员上传的该表单页面对应的配置文件,生成表单页面文档,进而应用服务器可以将表单页面文档返回给用户终端,用户终端接收到表单页面文档之后可以渲染表单页面,进而显示渲染后的表单页面。
参照图2,示出了本申请实施例的一种表单页面文档生成方法的处理示意图。其中,图2示出的表单页面文档生成方法可以在图1所示的系统架构中执行,图2仅以图1系统架构中的一个用户终端与应用服务器的交互过程为例进行说明。
在本申请实施例中,用户在访问表单页面时,用户终端可以执行步骤S11:向应用服务器发送表单页面的访问请求。应用服务器在接收到用户终端发送的访问请求之后,可以执行步骤S12:获取配置文件,该配置文件中包括表单元素的配置信息。然后应用服务器可以执行步骤S13:根据表单元素的配置信息,生成表单元素的代码。进而应用服务器可以执行步骤S14:根据表单元素的代码,和提供的解析脚本,生成目标表单页面文档。应用服务器可以继续执行步骤S15:将目标表单页面文档返回用户终端。用户终端在接收到目标表单页面文档之后,可以执行步骤S16:调用解析脚本解析表单元素的代码,从而用户终端可以利用解析出的代码显示表单页面。
其中,应用服务器中的配置文件可以是开发人员在配置客户端中编写完毕之后,上传至应用服务器中的。
另外,应用服务器可以和用户终端直接交互,从而可以在生成目标表单页面文档之后,直接向用户终端返回目标表单页面文档。
再者,表单元素的代码基于设定的语法格式获得,相应的,可以根据表单元素代码的语法格式,生成能够对应解析表单元素代码的解析脚本,从而用户终端在获取到目标表单页面文档和解析脚本之后,可以利用解析脚本解析目标表单页面文档中表单元素的代码。
参照图3,示出了本申请实施例的另一种系统架构的结构框图。在图3中,开发人员可以在配置客户端中编写配置文件,并可以将配置文件上传至应用服务器。应用服务器可以通过内容分发网络(CDN,Content Delivery Network)服务器为多个用户终端提供网页服务,也即应用服务器可以通过内容分发网络服务器,与每个用户终端进行交互,图3中仅示例性地示出了3个用户终端。应用服务器可以基于开发人员上传的该表单页面对应的配置文件,生成表单页面文档,并发送至内容分发网络服务器进行存储。每个用户终端均可以向内容分发网络服务器发送表单页面的访问请求,内容分发网络服务器在接收到访问请求时,可以将访问请求对应的表单页面文档返回给用户终端,用户终端接收到表单页面文档之后可以渲染表单页面,进而显示渲染后的表单页面。
参照图4,示出了本申请实施例的另一种表单页面文档生成方法的处理示意图。其中,图4示出的表单页面文档生成方法可以在图3所示的系统架构中执行,图4仅以图3系统架构中的一个用户终端、内容分发网络服务器和应用服务器的交互过程为例进行说明。
应用服务器无需直接与用户终端进行交互,而是可以通过内容分发网络服务器与用户终端进行交互,其中,内容分发网络服务器可以部署在中间节点服务器中。为了减轻应用负载,以及缩短请求响应时间,应用服务器可以首先将用户终端所需的数据上传至内容分发网络服务器,进而内容分发网络服务器可以通过临近用户终端的中间节点服务器,将数据发送至用户终端。
应用服务器可以首先执行步骤S21:获取配置文件,该配置文件中包括表单元素的配置信息。然后应用服务器可以执行步骤S22:根据表单元素的配置信息,生成表单元素的代码。进而应用服务器可以执行步骤S23:根据表单元素的代码,和提供的解析脚本,生成目标表单页面文档。应用服务器可以继续执行步骤S24:将目标表单页面文档上传至内容分发网络服务器中。用户在访问表单页面时,用户终端可以执行步骤S25:向内容分发网络服务器发送表单页面的访问请求。内容分发网络服务器在接收到用户终端发送的访问请求之后,可以执行步骤S26:将目标表单页面文档发送至用户终端。用户终端在接收到目标表单页面文档之后,可以执行步骤S27:调用解析脚本解析表单元素的代码,从而用户终端可以利用解析出的代码显示表单页面。
如图3和图4的描述,在本申请实施例中,应用服务器可以直接与用户终端交互,并在接收到用户终端的表单页面访问请求时,生成目标表单页面文档,并返回至用户终端。另外,应用服务器还可以通过内容分发网络服务器与用户终端交互,应用服务器可以事先生成目标表单页面文档,并上传至内容分发网络服务器中,当内容分发网络服务器接收到用户终端的表单页面访问请求时,可以将存储的目标表单页面文档发送至用户终端。本申请实施例不对应用服务器与用户终端的交互方式,以及是否在接收到访问请求之前事先生成目标表单页面文档加以限制。
需要说明的是,在图1的架构下,还可以采用另一种方式给用户终端返回表单页面文档,比如应用服务器还可以先执行步骤S12、S13和S14,然后再接收用户终端向应用服务器发送的访问请求,然后再执行S15和S16。
在本申请实施例中,预设了一套配置文件的表单配置规则,以及预设了与该表单配置规则对应的解析规则的解析器。那么在按照该配置规则针对表单元素配置了一份配置文件后,服务器基于该配置文件生成了表单页面文档返回客户端,客户端则可以利用上述解析器,按照上述解析规则对表单页面中的表单元素进行解析,从而完成相应的表单控制操作。
其中,配置文件中可以定义以下配置信息,如表一,包括:
表一
可以理解,上述配置主要定义了以下几个方面:
1、表单分组:表单分组可以决定最终在网页中展示的表单元素之间的所属关系。
2、不同类型的表单元素:可以包括网页中常用的表单元素,以及集合了功能性的高级表单元素,例如普通文本框,文本块,单选框,复选框,下拉选择器,日期选择器,颜色选择器等等。
3、表单校验规则:表单校验规则可以用于校验用户填入表单的数据是否符合要求,例如可以校验填入邮箱的类型是否为预设的邮箱类型,是否按照预设时间格式填入时间,输入值是否为空,填入的数值是否在预设数值范围内,设定的颜色值是否为预设颜色值等等。
4、表单行为控制器:定义显示、隐藏、禁用、启用4种表单行为,可以通过描述表单元素名称配置项name的属性值与预设属性值之间的逻辑关系(如相等、不等、大于、小于等)触发当前表单元素的行为。
然后,本申请实施例还可以设置一个解析器,解析器比如前述解析脚本,基于上述定义的配置文件生成表单页面文档代码后,可以从表单页面文档代码中识别相应的表单校验规则、表单行为等内容。
通过上述方式,在需要生成表单页面文档时,可以事先定义表单元素的配置文件,然后可以基于配置文件以及用于解析表单元素代码的解析脚本,生成用于渲染表单页面的目标表单页面文档,而无需对表单页面文档的代码进行修改,可以在配置文件中对表单元素的配置信息进行修改即可,降低了开发时间,无需在表单页面代码中对已有的逻辑进行调整,提高了表单开发的灵活性和复用性。
实施例一
参照图5,示出了本申请实施例的一种表单页面文档生成方法的流程图,具体可以包括如下步骤:
步骤501,获取配置文件;所述配置文件中包括表单元素的配置信息。
在本申请实施例中,可以首先根据表单页面的展示需求,在应用服务器中编写表单页面中表单元素的配置信息,从而可以获得表单页面对应的自定义的配置文件。其中,配置文件可以基于预设的格式和语法进行编写,以使应用服务器能够对配置文件中的各个配置信息进行读取和进一步处理。
其中,表单元素的配置信息可以包括表单元素类型的配置项type,表单元素标题配置项fieldTitle,至少一个属性配置项等等。其中,属性配置项具体可以包括表单校验规则的配置项和/或表单关联行为规则的配置项,其中,表单校验规则可以用于校验表单的填写是否符合规范,表单关联行为规则可以用于在一个表单的行为状态变化时,触发相关联表单的行为状态变化。
步骤502,根据所述表单元素的配置信息,生成表单元素的代码。
在本申请实施例中,应用服务器中可以预置表单页面文档模板,该表单页面文档模板中包括与各个表单元素配置信息相对应的预设的字段或字段组合。应用服务器可以将表单页面文档模板中的各个字段或字段组合,与配置文件中自定义的各个表单元素配置信息的字段进行匹配,当匹配上时,将表单页面文档模板中的字段值确定为相匹配的表单元素配置信息的字段值。通过表单页面文档模板将全部的表单元素配置信息进行转换之后,可以获得包括表单元素的代码。
需要说明的是,可以利用预设了表单页面文档模板的模板引擎生成表单元素的代码。模板引擎可以采用任意一种,比如可以采用Dustjs模板引擎,具体的模板引擎本申请实施例不对其加以限定。
步骤503,根据所述表单元素的代码,和提供的解析脚本,生成目标表单页面文档。
在本申请实施例中,由于配置信息中的部分信息可以是新增定义的,而用户终端在解析表单页面文档时,则需要能够解析这部分新增信息的解析工具,因此,可以在应用服务器中编写新增的配置信息所对应的解析脚本。应用服务器可以首先将表单元素的代码插入html框架代码中,从而获得中间表单页面文档,然后可以将解析脚本添加到中间表单页面文档中,从而获得目标表单页面文档。当用户终端接收到目标表单页面文档时,可以利用解析脚本解析新增配置信息对应的表单元素代码。
本申请实施例通过获取包括表单元素的配置信息的配置文件,并根据表单元素的配置信息生成表单元素的代码,进而根据表单元素的代码和提供的解析脚本,生成目标表单页面文档。在需要生成表单页面文档时,可以事先定义表单元素的配置文件,然后可以基于配置文件以及用于解析表单元素代码的解析脚本,生成用于渲染表单页面的目标表单页面文档,而无需对表单页面文档的代码进行修改,可以在配置文件中对表单元素的配置信息进行修改即可,降低了开发时间,无需在表单页面代码中对已有的逻辑进行调整,提高了表单开发的灵活性和复用性。
实施例二
参照图6,示出了本申请实施例的一种表单页面文档生成方法的具体流程图,具体可以包括如下步骤:
步骤601,接收用户终端发送的访问请求。
在本申请实施例中,应用服务器可以与用户终端直接进行交互,用户在访问表单页面时,用户终端可以向应用服务器发送表单页面的访问请求。
例如,用户终端可以向应用服务器发送表单页面的访问请求,从而应用服务器可以接收该访问请求。
步骤602,获取与所述访问请求对应的配置文件。
应用服务器在接收到用户终端发送的访问请求时,可以从本地调取与接收的访问请求相对应的配置文件,也即是获取所请求的表单页面对应的配置文件,其中,配置文件中包括表单元素的配置信息。
例如,应用服务器可以获取与访问请求对应的配置文件。
步骤603,从所述配置文件中读取所述表单元素的配置信息。
应用服务器可以读取配置文件中表单元素的配置信息。其中,表单元素的配置信息具体可以包括表单元素类型的配置项type以及至少一个属性配置项,属性配置项可以包括表单元素标题配置项fieldTitle、表单元素名称配置项name、表单元素名称的属性值value、表单元素名称的默认值default等等。
其中,表单元素类型的配置项type可以为单选框radio、复选框checkboxes、文本框text、选择框select等等;表单元素标题配置项fieldTitle为表单元素在页面中显示的标题,例如“现价”、“活动价”等等;表单元素名称配置项name为用户对某个表单元素进行操作之后,用户终端向应用服务器传回该表单元素的数据时所需的名称;表单元素名称的属性值value为用户对某个表单元素操作之后可以得到的属性值,例如某单选框radio的默认值default可以为false,也即未选中,用户可以对该单选框radio进行选中操作,此时,该单选框radio名称的属性值value为true。
属性配置项具体可以包括表单校验规则的配置项和/或表单关联行为规则的配置项,相应的,表单元素的代码可以包括对应表单校验规则的配置项和/或表单关联行为规则的配置项的目标代码。
进一步的,表单校验规则的配置项具体可以包括validate字段,在该字段下可以设置校验规则,比如采用正则表达式构建的校验规则。
表单关联行为规则的配置项具体可以包括行为条件父字段conditions,在行为条件父字段conditions下可以包括至少一个行为条件子字段,例如show(显示)、hide(隐藏)、enable(启用)、disable(禁用)等等。其中,至少一个行为条件子字段可以分别对应一表单关联行为规则。对于任一表单元素的任一表单行为,该表单行为的表单关联行为规则可以基于配置文件中其他表单元素的配置信息设定,例如对于表单元素A,表单元素A的显示行为可以基于表单元素B的表单元素名称配置项name的字段值设定,也即在表单元素B的表单元素名称配置项name的属性值value为true时,表单元素A可以显示。
在实际应用中,表单关联行为规则具体可以包括表单显示规则、表单隐藏规则、表单禁用规则、表单启用规则其中至少一种。具体的,对于任一表单元素,该表单元素的表单关联行为规则可以为其他表单元素的表单元素名称属性值value与预设的value值之间的逻辑关系,例如相等、不等、大于、小于等逻辑关系。例如表单元素A的表单显示规则,可以为表单元素B对应的表单元素名称bb的属性值value等于true,也即是在表单元素名称bb的属性值value等于true时,表单元素A可以显示。
表单校验规则具体可以包括:邮箱类型校验规则,时间格式校验规则,是否为空校验规则,数值校验规则,颜色值校验规则其中至少一种。其中,每个表单校验规则均可以为正则表达式。在实际应用中,用户对某个表单进行操作之后,用户终端可以根据该表单元素对应的表单校验规则,对用户通过操作输入的信息进行内容或格式的校验。例如,表单元素A需要用户填入联系电话,表单元素A的类型为文本框text,用户在提交表单,或者表单元素A失焦时,可以验证表单元素A的属性值value是否为空,当属性值value不为空时,确定表单元素A的填写正常,当属性值value为空时,确定表单元素A的填写异常,此时可以提示用户需要填写联系电话才能提交表单。
在实际应用中,表单关联行为规则和表单校验规则可以根据表单页面的实际需求进行定义,本申请实施例对此不加以限制。
另外,在实际应用中,表单元素的配置信息还可以按分组设置,每个分组可以包括至少一个表单元素的配置信息。在表单元素的配置信息分组的情况下,表单元素的配置信息还可以包括表单分组标题的配置项,例如表单元素A和B可以属于分组P,表单元素C和D可以属于分组Q,相应的,表单元素A和B的配置信息还可以包括表单分组标题P的配置项,表单元素C和D的配置信息还可以包括表单分组标题Q的配置项。
例如,应用服务器可以读取配置文件中的表单元素的配置信息,该配置文件采用如前述表一的结构进行设置,其中的一个分组的内容如下:
一个分组priceAAA{},在该分组对应的{}中设置多个字段:
英文名称en:“pricetype”,
中文名称title:“预热价格展示”,
分组关键字fields:[],在该分组关键字的方括号[]中用两个综括号{}设置了两个表单元素。
其中,在分组关键字第一个{}中,设置了表单元素的属性字段,比如:
表单元素文本名称fieldtitle:“活动价”,
表单元素类型type:radio,
表单元素属性名name:“showFuturePrice”,
表单元素关键值value:“ture”,
表单元素默认值default:“false”,
表单行为控制器condition:{},其中,进一步的在表单行为的{}中设置了一个或多个表单行为规则字段:
显示条件show:“configType=new”;
隐藏条件hide:“configType=reuse”。
其中,显示条件show:“configType=new”表示:在name为configType的表单元素第一次显示的情况下,当前表单元素“showFuturePrice”显示;隐藏条件hide:“configType=reuse”表示:在name为configType的表单元素再次显示的情况下,当前表单元素“showFuturePrice”隐藏。
其中,在分组关键字第二个{}中,设置了表单元素的属性字段,比如:
表单元素文本名称fieldtitle:“需输入活动开始时间”,
表单元素类型type:date,
表单元素属性名name:“showTime”,
表单元素默认值default:“false”,
表单行为控制器condition:{},其中,进一步的在表单行{}为中设置了表单行为规则字段:
默认显示属性visible:“false”,
显示条件show:“configType=new&&showFuturePrice=true”,
隐藏条件hide:“configType=reuse||showFuturePrice=false”。
其中显示条件show:“configType=new&&showFuturePrice=true”表示:在name为configType的表单元素第一次显示的情况下,以及name为showFuturePrice的value值为true的情况下,当前表单元素“showTime”显示;隐藏条件hide:“configType=new&&showFuturePrice=true”表示:在name为configType的表单元素再次显示的情况下或者name为showFuturePrice的value值为false的情况下,当前表单元素“showTime”隐藏。
当然,如果需要对某个表单元素添加表单校验规则,还可以在分组关键字该表单元素的{}中,添加字段“validate:***”,其中validate表示该字段是表单校验规则,validate后面的值是具体的校验规则。
需要说明的是,配置中,表单元素的属性字段中,具体需要设置哪些字段,根据实际需求设置,本申请实施例不对其加以限制。
步骤604,生成html框架代码。
在本申请实施例中,应用服务器可以生成html框架代码,在该html框架代码中,各个配置项对应的代码区域确定,从而各个配置项的渲染顺序确定。
html是以各种标签构建的结构化语言,其html文档中也是以各种标签构建的具有结构化语句的文档。比如html的标签包括用于指示整个文档身份的<html>标签,指示HTML文档的主体的<body>标签,每个标签都有开始和结束,比如:“<html>”定义文档开始,“</html>”定义文档结束。因此,本申请中的应用服务器可以调用模板引擎,基于html的定义生成html框架。
例如,应用服务器可以生成html框架代码,html框架代码可以包括标签<html>,在<html>中可以添加标签<body>等结构化标签得到。其中标签<body>中可以添加表单元素相关的代码。
步骤605,将表单元素类型的配置项与表单页面文档模板的表单类型字段匹配,确定所述表单页面文档模板中的html标签结构子模板。
应用服务器中包括预置了表单页面文档模板的模板引擎,该表单页面文档模板中可以包括与各个表单元素配置信息相对应的预设的字段或字段组合。应用服务器可以将表单元素类型的配置项与表单页面文档模板的表单类型字段匹配,从而确定表单页面文档模板中的html标签结构子模板,也即是可以确定出需要通过哪个表单类型的子模板生成表单元素的代码。需要说明的是,在实际应用中,一个html标签结构子模板可以对多种表单元素类型进行代码转换,也即html标签结构子模板的数量可以小于表单元素类型的数量。例如单选框radio和日期选择器date的配置项均可以通过表单类型字段为input(定义输入控件)的html标签结构子模板进行代码转换,下拉选择器可以通过表单类型字段为select(定义下拉列表)的html标签结构子模板生成表单元素的代码。其他表单类型也可以设置相应的标签结构子模板,本申请实施例不对其加以限定。
例如,对于表单元素“现价”,应用服务器可以将单选框radio的配置项与表单页面文档模板的表单类型字段input匹配,确定表单页面文档模板中用于生成radio类型表单元素代码的html标签结构子模板。
在实际应用中,在上述模板引擎中,可以设置一个或多个表单元素的html标签结构子模板,以<input>表单元素为例,可以设置其html标签结构子模板包括:
1、子模板的匹配入口和结束位置。
比如:{@eq value=“input”}……{/eq},其中{@eq value=“input”}表示input子模板入口,{/eq}表示该input子模板结束位置。
2、html标签组合,以及设置在html标签结构中的字段提取接口,该html的标签组合设置于上述匹配入口和结束位置之间。
一个input表单元素对应的标签组合可以包括如:标签<div>,标签<div>作为父标签,然后设置标签<label>作为<div>的子标签,然后设置<input>标签作为<label>的子标签。
其中,<div>标签表示该input表单元素所在的区域;<label>标签用于触发对应表单控件功能,可以与<input>配合;<input>用于创建交互式控件,它可以接收用户的数据、信息。然后在该html标签组合中,可以在标签内部,比如起始标签的括号内添加标签属性的提取接口,比如对于input表单元素的各项属性字段的提取接口,比如<input“name=“{name}”data-show=“{conditions.show}”data-hide=“{conditions.hide}”……>等,其中name、data-show、data-hide为表单元素的属性字段,“{name}”、“{conditions.show}”、“{conditions.hide}等为提取函数,该函数执行后从配置文件中读取相应字段的值,然后替换掉该函数自身,最终得到一个可由浏览器执行的表单元素代码。需要说明是,该提取函数可以根据需求自定义命名,本申请实施例不对其加以限制。另外,还可以有设置在<input>之外的提取接口,该提取接口可以用于提取配置文件中对应字段的文本放置在相应位置。
需要说明的是,模板引擎中的表单页面文档模板中,有用于识别表单类型的识别接口,比如在所有前述html标签结构子模板之前,设有{@selcet key=“{type}”},其中@selcet标识模板识别接口,其识别表单的关键字key为type的字段,后续模板引擎即可从前述配置文件的type字段中去匹配各种类型的表单元素。
需要说明的是,上述具体的标签相关说明仅为示例,具体原理可以根据实际需求设置,本申请实施例不对其加以限制。
步骤606,利用属性配置项,替换所述html标签结构子模板中的属性字段,获得表单元素的代码。
在本申请实施例中,应用服务器可以将html标签结构子模板中的属性字段替换为表单元素的各个属性配置项,从而可以获得表单元素的代码。在实际应用中,表单元素的代码可以为html代码。
具体的,对应于表单关联行为规则的配置项中的行为条件父字段和至少一个行为条件子字段,html标签结构子模板中的属性字段的字段值可以为:行为条件父字段与行为条件子字段的字段组合。相应的,对于属性配置项中的表单关联行为规则的配置项,步骤606具体可以包括下述子步骤6061、子步骤6062和子步骤6063。
子步骤6061,获取所述html标签结构子模板中的所述字段组合。
在此步骤中,在html标签结构子模板中对应表单关联行为规则的渲染区域,设置有行为条件父字段与行为条件子字段的字段组合,应用服务器可以获取html标签结构子模板中对应表单关联行为规则的字段组合。
子步骤6062,根据所述字段组合,与所述表单关联行为规则的配置项的行为条件父字段以及所述行为条件子字段进行匹配,确定表单关联行为规则。
在此步骤中,html标签结构子模板中的字段组合包括行为条件父字段和行为条件子字段,应用服务器可以将html标签结构子模板中字段组合的行为条件父字段和行为条件子字段,与表单关联行为规则的配置项的行为条件父字段和行为条件子字段进行匹配,以从配置文件中找到应替换html标签结构子模板中字段组合的表单关联行为规则。
子步骤6063,将所述表单关联行为规则替换所述字段组合。
在此步骤中,应用服务器确定表单关联行为规则之后,可以将表单关联行为规则替换html标签结构子模板中的字段组合,从而可以利用html标签结构子模板,将配置文件中的表单关联行为规则配置项转换为表单元素关于表单关联行为规则部分的代码。
例如,应用服务器可以获取html标签结构子模板中的字段组合conditions.show,并可以根据字段组合conditions.show,与表单关联行为规则的配置项的行为条件父字段conditions以及行为条件子字段show进行匹配,从而确定行为条件子字段show对应的表单关联行为规则,进而应用服务器可以将行为条件子字段show对应的表单关联行为规则,替换html标签结构子模板中的字段组合conditions.show,从而获得表单元素的显示行为对应的代码。
另外,属性配置项还可以包括表单元素标题配置项fieldTitle,相应的,步骤606具体可以包括下述子步骤6064。
子步骤6064:将所述表单元素标题配置项中的标题,替换所述html标签结构子模板中的text字段。
在此步骤中,应用服务器可以将表单元素标题配置项fieldTitle中的标题,替换html标签结构子模板中的text字段,从而用户终端在渲染页面之后,可以显示表单元素的标题。
另外,还需要说明的是,由于属性配置项还可以包括表单元素名称配置项name、表单元素名称的属性值value、表单元素名称的默认值default、表单分组标题的配置项等等,因此,在实际应用中,应用服务器在利用html标签结构子模板获得表单代码时,可以将每个属性配置项一一替换html标签结构子模板中对应的字段,从而可以获得表单元素的全部代码。
再者,在实际应用中,应用服务器将每个属性配置项一一替换html标签结构子模板中对应的字段时,可以按照html标签结构子模板中各个字段的顺序进行一一替换。
例如,对于表单“活动价”,应用服务器可以将表单元素标题配置项fieldTitle中的标题“活动价”,替换html标签结构子模板中位于标签<label>中的text字段,将表单元素名称配置项name中的showFuturePrice,替换html标签结构子模板中位于标签<label>中的name字段,将表单元素名称的属性值value中的true,替换html标签结构子模板中位于标签<label>中的value字段,将行为条件父字段conditions下的行为条件子字段show对应的表单关系行为规则“configType=new”,替换html标签结构子模板中位于标签<label>中的conditions.show字段,将行为条件子字段hide对应的表单关系行为规则“configType=reuse”,替换html标签结构子模板中位于标签<label>中的conditions.hide字段,从而获得表单“活动价”的代码。
步骤607,将所述表单元素的代码插入所述html框架代码中,获得中间表单页面文档。
在本申请实施例中,应用服务器可以将表单元素的代码插入html框架代码中,从而获得渲染表单页面所需的中间表单页面文档。
进一步的,在实际应用中,由于表单配置信息还可以按分组设置,且每个分组可以包括至少一个表单元素的配置信息,因此,步骤607还可以包括下述子步骤6071。
子步骤6071:将所述表单元素的表单代码按分组插入所述html框架代码中,获得中间表单页面文档。
在此步骤中,由于各个表单元素可以分组,相应的,html框架代码也可以对应进行分组,对于任一表单元素,应用服务器可以将该表单元素的代码插入html框架代码中对应的分组中,从而可以获得包括多个分组的表单元素代码的中间表单页面文档。
例如,前述例子中应用服务器可以将表单“活动价”的表单代码插入html框架代码的标签<body>中,获得中间表单页面文档中表单“活动价”对应的代码部分。
类似地,可以将表单“需输入活动开始时间”的代码插入html框架代码的标签<body>中,获得中间表单页面文档中表单“需输入活动开始时间”对应的代码部分,至此,可以得到中间表单页面文档。
在实际应用中,如果有多组表单元素,可以将同一组表单元素的代码,设置在标签<body>中的同一个标签<div>中,如此可以实现一组表单元素在一个区域中显示的效果。
步骤608,将提供的解析脚本添加到所述中间表单页面文档中,获得目标表单页面文档。
在本申请实施例中,当属性配置项包括表单校验规则的配置项和/或表单关联行为规则的配置项,且表单元素的代码包括对应表单校验规则的配置项和/或表单关联行为规则的配置项的目标代码时,解析脚本具体可以用于解析表单代码中的目标代码,也即是解析表单配置信息中新增定义的信息。
比如上述例子中,data-show、data-hide这种表单关联行为规则属性,并不是W3C(World Wide Web Consortium,万维网联盟)规定的html语言中规定的表单元素的属性,其是本申请实施例自定义的表单元素属性,那么对于浏览器而言,其是按照W3C规定构建对html文档的解析逻辑,由于本申请有上述自定义属性,因此浏览器不能识别自定义的表单元素属性,而为了实现表单校验规则、表单关联行为规则的执行,本申请则针对上述自定义的表单元素属性独立设置了一个解析脚本,其可以解析本申请实施例自定义的代码,比如本申请自定义的表单校验规则对应的代码以及表单关联行为规则对应的代码。然后将该解析脚本加入上述中间表单页面文档中,即可得到最终的html文档,也即目标表单页面文档。当用户终端接收到目标表单页面文档,并通过目标表单页面文档渲染表单页面时,可以利用目标表单页面文档中的解析脚本,解析自定义的配置信息对应的目标代码,从而实现表单页面的渲染。
例如,应用服务器可以将解析脚本添加到中间表单页面文档中,获得目标表单页面文档,其中,解析脚本具体可以用于解析表单校验规则和/或表单关联行为规则配置项对应的目标代码。
步骤609,将所述目标表单页面文档返回所述用户终端。
在本申请实施例中,应用服务器在得到目标表单页面文档之后,可以将目标表单页面文档返回用户终端,从而用户终端接收到目标表单页面文档之后,可以调用目标表单页面文档中的解析脚本,解析表单校验规则和/或表单关联行为规则配置项对应的目标代码,进而用户终端可以利用解析出的代码,以及无需利用解析脚本解析的表单元素代码显示表单页面。
在具体应用中,可以利用客户端原有的解析器解析html文档中属于html标准的代码,而对于本申请自定义的字段,则可以调用上述解析脚本解析并执行,从而完成表单校验、和/或表单之间的关联行为控制。
需要说明的是,在本申请实施例中,应用服务器可以在接收到用户终端的访问请求时,生成目标表单页面文档,进而返回至用户终端。当然,在实际应用中,应用服务器还可以在没有接收到用户终端的访问请求的情况下,提前生成目标表单页面文档,并在生成目标表单页面文档之后执行下述步骤:将所述目标表单页面文档上传至内容分发网络服务器中,从而内容分发网络服务器在接收到用户终端的访问请求时,可以将目标表单页面文档发送给用户终端,从而缩短访问请求的响应时间。
由于本申请在开发表单页面时只需定义或修改配置文件,然后可以将配置文件中的表单配置信息替换代码模板中对应区域的模板信息,而无需手动修改表单页面的页面代码,因此可以提高表单的开发效率。另外,由于无需对页面代码进行已有逻辑的大幅调整,因此提高了表单开发的灵活性和复用性。
例如,应用服务器可以将生成的目标表单页面文档返回用户终端,从而用户终端可以基于目标表单页面文档渲染表单页面。
本申请实施例通过获取包括表单元素的配置信息的配置文件,并通过表单页面文档模板中对应各个表单元素类型的html标签结构子模板,对配置文件中的配置信息进行转换,从而获取包括表单元素代码的中间表单页面文档,然后将用于解析表单元素代码中自定义代码部分的解析脚本添加到中间表单页面文档中,从而获得目标表单页面文档。在需要生成表单页面文档时,可以事先定义表单元素的配置文件,然后可以基于配置文件以及解析脚本,生成用于渲染表单页面的目标表单页面文档,而无需对表单页面文档的代码进行修改,可以在配置文件中对表单元素的配置信息进行修改即可,降低了开发时间,无需在表单页面代码中对已有的逻辑进行调整,提高了表单开发的灵活性和复用性。另外,通过表单页面文档模板转换定义的配置文件,可以减小表单的修改幅度,提高了表单的开发效率。
实施例三
参照图7,示出了本申请实施例的一种表单页面渲染方法的流程图,具体可以包括如下步骤:
步骤701,获取目标表单页面文档;所述目标表单页面文档中包括解析脚本以及表单元素的代码;所述目标表单页面文档基于配置文件中的表单元素的配置信息获得。
在本申请实施例中,应用服务器可以根据配置文件中的配置信息生成表单元素的代码,并根据表单元素的代码和提供的解析脚本,生成目标表单页面文档。若应用服务器在接收到用户终端发送的访问请求的情况下生成目标表单页面文档,则应用服务器生成目标表单页面文档之后可以直接发送给用户终端,以使用户终端从应用服务器获取到目标表单页面文档。若应用服务器未接收到用户终端发送的访问请求的情况下生成目标表单页面文档,则应用服务器可以将目标表单页面文档上传至内容分发网络服务器中进行存储,当内容分发网络服务器接收到用户终端发送的访问请求时,可以将目标表单页面文档发送给用户终端,从而用户终端从内容分发网络服务器获取到目标表单页面文档。
表单元素的配置信息可以包括至少一个属性配置项,属性配置项具体可以包括表单校验规则的配置项和/或表单关联行为规则的配置项,相应的,表单元素的代码具体可以包括对应表单校验规则的配置项和/或表单关联行为规则的配置项的目标代码,其中,解析脚本具体可以用于解析表单元素的代码中的目标代码。
在实际应用中,表单校验规则具体可以包括邮箱类型校验规则,时间格式校验规则,是否为空校验规则,数值校验规则,颜色值校验规则其中至少一种。表单关联行为规则具体可以包括表单显示规则、表单隐藏规则、表单禁用规则、表单启用规则其中至少一种,本申请实施例对此不加以限制。
步骤702,调用所述解析脚本解析所述表单元素的代码。
在本申请实施例中,用户终端在获取到目标表单页面文档之后,可以调用目标表单页面文档中的解析脚本,解析表单元素代码中的目标代码,进而用户终端可以通过解析出的代码,以及目标表单页面文档中无需通过解析脚本解析的代码,进行表单页面的渲染。用户终端在渲染完毕之后可以显示渲染后的表单页面,进而用户可以在表单页面中填写信息。
本申请实施例通过获取包括解析脚本以及表单元素的代码的目标表单页面文档,其中,解析脚本用于解析表单元素的代码,目标表单页面文档基于配置文件中表单元素的配置信息获得,并调用解析脚本解析表单元素的代码,从而用户终端可以通过基于配置文件生成的目标表单页面文档,对表单页面进行渲染。由于目标表单页面文档的生成过程中只需编译配置文件,而无需调整页面代码,因此能够提高发送访问请求至渲染表单页面的过程的开发效率。另外,由于无需调整页面代码的已有逻辑,因此提高了表单开发的灵活性和复用性。
实施例四
参照图8,示出了本申请实施例的一种表单页面文档生成装置的结构图,该装置800具体可以包括如下模块:
第一获取模块801,用于获取配置文件;所述配置文件中包括表单元素的配置信息;
第一生成模块802,用于根据所述表单元素的配置信息,生成表单元素的代码;
第二生成模块803,用于根据所述表单元素的代码,和提供的解析脚本,生成目标表单页面文档。
可选的,所述第一生成模块802包括:
读取子模块,用于从所述配置文件中读取所述表单元素的配置信息;
转换子模块,用于基于预置的表单页面文档模板,将所述表单元素的配置信息转换为表单元素的代码。
可选的,所述表单元素的配置信息包括:表单元素类型的配置项,至少一个属性配置项;
所述转换子模块包括:
生成单元,用于生成html框架代码;
确定单元,用于将所述表单元素类型的配置项与所述表单页面文档模板的表单类型字段匹配,确定所述表单页面文档模板中的html标签结构子模板;
替换单元,用于利用所述属性配置项,替换所述html标签结构子模板中的属性字段,获得表单元素的代码。
可选的,所述属性配置项包括:表单校验规则的配置项和/或表单关联行为规则的配置项;所述表单元素的代码包括:对应所述表单校验规则的配置项和/或所述表单关联行为规则的配置项的目标代码;所述解析脚本具体用于解析所述表单元素的代码中的所述目标代码。
可选的,所述表单关联行为规则的配置项包括:
行为条件父字段,在所述行为条件父字段下包括至少一个行为条件子字段,所述至少一个行为条件子字段分别对应一表单关联行为规则;所述html标签结构子模板中的属性字段的字段值为:行为条件父字段与行为条件子字段的字段组合;
所述替换单元包括:
获取子单元,用于获取所述html标签结构子模板中的所述字段组合;
匹配子单元,用于根据所述字段组合,与所述表单关联行为规则的配置项的行为条件父字段以及所述行为条件子字段进行匹配,确定表单关联行为规则;
第一替换子单元,用于将所述表单关联行为规则替换所述字段组合。
可选的,所述属性配置项还包括:
表单元素标题配置项;
所述替换单元包括:
第二替换子单元,用于将所述表单元素标题配置项中的标题,替换所述html标签结构子模板中的text字段。
可选的,所述第二生成模块803包括:
插入子模块,用于将所述表单元素的代码插入所述html框架代码中,获得中间表单页面文档;
添加子模块,用于将提供的解析脚本添加到所述中间表单页面文档中,获得目标表单页面文档。
可选的,所述表单元素的配置信息按分组设置,每个分组包括至少一个表单元素的配置信息;
所述插入子模块包括:
插入子单元,用于将所述表单元素的代码按分组插入所述html框架代码中,获得中间表单页面文档。
可选的,所述表单校验规则包括:邮箱类型校验规则,时间格式校验规则,是否为空校验规则,数值校验规则,颜色值校验规则其中至少一种;所述表单关联行为规则包括:表单显示规则、表单隐藏规则、表单禁用规则、表单启用规则其中至少一种。
可选的,所述装置800还包括:
接收模块,用于接收用户终端发送的访问请求;
所述第一获取模块包括:
获取子模块,用于获取与所述访问请求对应的配置文件;
所述装置800还包括:
返回模块,用于将所述目标表单页面文档返回所述用户终端。
可选的,所述装置800还包括:
上传模块,用于将所述目标表单页面文档上传至内容分发网络服务器中。
本申请实施例通过获取包括表单元素的配置信息的配置文件,并根据表单元素的配置信息生成表单元素的代码,进而根据表单元素的代码和提供的解析脚本,生成目标表单页面文档。在需要生成表单页面文档时,可以事先定义表单元素的配置文件,然后可以基于配置文件以及用于解析表单元素代码的解析脚本,生成用于渲染表单页面的目标表单页面文档,而无需对表单页面文档的代码进行修改,可以在配置文件中对表单元素的配置信息进行修改即可,降低了开发时间,无需在表单页面代码中对已有的逻辑进行调整,提高了表单开发的灵活性和复用性。
实施例五
参照图9,示出了本申请实施例的一种表单页面渲染装置的结构图,该装置900具体可以包括如下模块:
第二获取模块901,用于获取目标表单页面文档;所述目标表单页面文档中包括解析脚本以及表单元素的代码;所述目标表单页面文档基于配置文件中的表单元素的配置信息获得;
调用模块902,用于调用所述解析脚本解析所述表单元素的代码。
可选的,所述表单元素的配置信息包括:至少一个属性配置项;所述属性配置项包括:表单校验规则的配置项和/或表单关联行为规则的配置项;所述表单元素的代码包括:对应所述表单校验规则的配置项和/或所述表单关联行为规则的配置项的目标代码;所述解析脚本具体用于解析所述表单元素的代码中的所述目标代码。
可选的,所述表单校验规则包括:邮箱类型校验规则,时间格式校验规则,是否为空校验规则,数值校验规则,颜色值校验规则其中至少一种;所述表单关联行为规则包括:表单显示规则、表单隐藏规则、表单禁用规则、表单启用规则其中至少一种。
本申请实施例通过获取包括解析脚本以及表单元素的代码的目标表单页面文档,其中,解析脚本用于解析表单元素的代码,目标表单页面文档基于配置文件中表单元素的配置信息获得,并调用解析脚本解析表单元素的代码,从而用户终端可以通过基于配置文件生成的目标表单页面文档,对表单页面进行渲染。由于目标表单页面文档的生成过程中只需编译配置文件,而无需调整页面代码,因此能够提高发送访问请求至渲染表单页面的过程的开发效率。另外,由于无需调整页面代码的已有逻辑,因此提高了表单开发的灵活性和复用性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图10是本申请实施例提供的一种服务器的结构示意图。参见图10,服务器1000可以用于实施上述实施例一和实施例二中提供的表单页面文档生成方法。该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储的或持久存储的。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在服务器1000上执行存储介质1030中的一系列指令操作。
服务器1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,一个或一个以上键盘1056,和/或,一个或一个以上操作系统1041,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。其中,中央处理器1022可以在服务器1000上执行以下操作的指令:
获取配置文件;所述配置文件中包括表单元素的配置信息;
根据所述表单元素的配置信息,生成表单元素的代码;
根据所述表单元素的代码,和提供的解析脚本,生成目标表单页面文档。
另外,本申请还提供一种用户终端,该用户终端可以用于实施上述实施例三中提供的表单页面渲染方法,在实际应用中,用户终端的结构可以与服务器1000的结构类似,在此不做赘述。
本申请提供一种装置,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行一种表单页面文档生成方法或一种表单页面渲染方法。
本申请还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行一种表单页面文档生成方法或一种表单页面渲染方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种表单页面文档生成方法、表单页面渲染方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (29)
1.一种表单页面文档生成方法,其特征在于,包括:
获取配置文件;所述配置文件中包括表单元素的配置信息;
根据所述表单元素的配置信息,生成表单元素的代码;
根据所述表单元素的代码,和提供的解析脚本,生成目标表单页面文档。
2.根据权利要求1所述的方法,其特征在于,所述根据所述表单元素的配置信息,生成表单元素的代码的步骤,包括:
从所述配置文件中读取所述表单元素的配置信息;
基于预置的表单页面文档模板,将所述表单元素的配置信息转换为表单元素的代码。
3.根据权利要求2所述的方法,其特征在于,所述表单元素的配置信息包括:表单元素类型的配置项,至少一个属性配置项;
所述基于预置的表单页面文档模板,将所述表单元素的配置信息转换为表单元素的代码的步骤,包括:
生成html框架代码;
将所述表单元素类型的配置项与所述表单页面文档模板的表单类型字段匹配,确定所述表单页面文档模板中的html标签结构子模板;
利用所述属性配置项,替换所述html标签结构子模板中的属性字段,获得表单元素的代码。
4.根据权利要求3所述的方法,其特征在于,所述属性配置项包括:表单校验规则的配置项和/或表单关联行为规则的配置项;所述表单元素的代码包括:对应所述表单校验规则的配置项和/或所述表单关联行为规则的配置项的目标代码;所述解析脚本具体用于解析所述表单元素的代码中的所述目标代码。
5.根据权利要求4所述的方法,其特征在于,所述表单关联行为规则的配置项包括:
行为条件父字段,在所述行为条件父字段下包括至少一个行为条件子字段,所述至少一个行为条件子字段分别对应一表单关联行为规则;所述html标签结构子模板中的属性字段的字段值为:行为条件父字段与行为条件子字段的字段组合;
所述利用所述属性配置项,替换所述html标签结构子模板中的属性字段,获得表单元素的代码的步骤,包括:
获取所述html标签结构子模板中的所述字段组合;
根据所述字段组合,与所述表单关联行为规则的配置项的行为条件父字段以及所述行为条件子字段进行匹配,确定表单关联行为规则;
将所述表单关联行为规则替换所述字段组合。
6.根据权利要求3所述的方法,其特征在于,所述属性配置项还包括:
表单元素标题配置项;
所述利用所述属性配置项,替换所述html标签结构子模板中的属性字段,获得表单元素的代码的步骤,包括:
将所述表单元素标题配置项中的标题,替换所述html标签结构子模板中的text字段。
7.根据权利要求3所述的方法,其特征在于,所述根据所述表单元素的代码,和提供的解析脚本,生成目标表单页面文档的步骤,包括:
将所述表单元素的代码插入所述html框架代码中,获得中间表单页面文档;
将提供的解析脚本添加到所述中间表单页面文档中,获得目标表单页面文档。
8.根据权利要求7所述的方法,其特征在于,所述表单元素的配置信息按分组设置,每个分组包括至少一个表单元素的配置信息;
所述将所述表单元素的代码插入所述html框架代码中,获得中间表单页面文档的步骤,包括:
将所述表单元素的代码按分组插入所述html框架代码中,获得中间表单页面文档。
9.根据权利要求4所述的方法,其特征在于,所述表单校验规则包括:邮箱类型校验规则,时间格式校验规则,是否为空校验规则,数值校验规则,颜色值校验规则其中至少一种;所述表单关联行为规则包括:表单显示规则、表单隐藏规则、表单禁用规则、表单启用规则其中至少一种。
10.根据权利要求1所述的方法,其特征在于,所述获取配置文件的步骤之前,还包括:
接收用户终端发送的访问请求;
所述获取配置文件的步骤包括:
获取与所述访问请求对应的配置文件;
所述根据所述表单元素的代码,和提供的解析脚本,生成目标表单页面文档的步骤之后,还包括:
将所述目标表单页面文档返回所述用户终端。
11.根据权利要求1所述的方法,其特征在于,所述根据所述表单元素的代码,和提供的解析脚本,生成目标表单页面文档的步骤之后,还包括:
将所述目标表单页面文档上传至内容分发网络服务器中。
12.一种表单页面渲染方法,其特征在于,包括:
获取目标表单页面文档;所述目标表单页面文档中包括解析脚本以及表单元素的代码;所述目标表单页面文档基于配置文件中的表单元素的配置信息获得;
调用所述解析脚本解析所述表单元素的代码。
13.根据权利要求12所述的方法,其特征在于,所述表单元素的配置信息包括:至少一个属性配置项;所述属性配置项包括:表单校验规则的配置项和/或表单关联行为规则的配置项;所述表单元素的代码包括:对应所述表单校验规则的配置项和/或所述表单关联行为规则的配置项的目标代码;所述解析脚本具体用于解析所述表单元素的代码中的所述目标代码。
14.根据权利要求13所述的方法,其特征在于,所述表单校验规则包括:邮箱类型校验规则,时间格式校验规则,是否为空校验规则,数值校验规则,颜色值校验规则其中至少一种;所述表单关联行为规则包括:表单显示规则、表单隐藏规则、表单禁用规则、表单启用规则其中至少一种。
15.一种表单页面文档生成装置,其特征在于,包括:
第一获取模块,用于获取配置文件;所述配置文件中包括表单元素的配置信息;
第一生成模块,用于根据所述表单元素的配置信息,生成表单元素的代码;
第二生成模块,用于根据所述表单元素的代码,和提供的解析脚本,生成目标表单页面文档。
16.根据权利要求15所述的装置,其特征在于,所述第一生成模块包括:
读取子模块,用于从所述配置文件中读取所述表单元素的配置信息;
转换子模块,用于基于预置的表单页面文档模板,将所述表单元素的配置信息转换为表单元素的代码。
17.根据权利要求16所述的装置,其特征在于,所述表单元素的配置信息包括:表单元素类型的配置项,至少一个属性配置项;
所述转换子模块包括:
生成单元,用于生成html框架代码;
确定单元,用于将所述表单元素类型的配置项与所述表单页面文档模板的表单类型字段匹配,确定所述表单页面文档模板中的html标签结构子模板;
替换单元,用于利用所述属性配置项,替换所述html标签结构子模板中的属性字段,获得表单元素的代码。
18.根据权利要求17所述的装置,其特征在于,所述属性配置项包括:表单校验规则的配置项和/或表单关联行为规则的配置项;所述表单元素的代码包括:对应所述表单校验规则的配置项和/或所述表单关联行为规则的配置项的目标代码;所述解析脚本具体用于解析所述表单元素的代码中的所述目标代码。
19.根据权利要求18所述的装置,其特征在于,所述表单关联行为规则的配置项包括:
行为条件父字段,在所述行为条件父字段下包括至少一个行为条件子字段,所述至少一个行为条件子字段分别对应一表单关联行为规则;所述html标签结构子模板中的属性字段的字段值为:行为条件父字段与行为条件子字段的字段组合;
所述替换单元包括:
获取子单元,用于获取所述html标签结构子模板中的所述字段组合;
匹配子单元,用于根据所述字段组合,与所述表单关联行为规则的配置项的行为条件父字段以及所述行为条件子字段进行匹配,确定表单关联行为规则;
第一替换子单元,用于将所述表单关联行为规则替换所述字段组合。
20.根据权利要求17所述的装置,其特征在于,所述属性配置项还包括:
表单元素标题配置项;
所述替换单元包括:
第二替换子单元,用于将所述表单元素标题配置项中的标题,替换所述html标签结构子模板中的text字段。
21.根据权利要求17所述的装置,其特征在于,所述第二生成模块包括:
插入子模块,用于将所述表单元素的代码插入所述html框架代码中,获得中间表单页面文档;
添加子模块,用于将提供的解析脚本添加到所述中间表单页面文档中,获得目标表单页面文档。
22.根据权利要求21所述的装置,其特征在于,所述表单元素的配置信息按分组设置,每个分组包括至少一个表单元素的配置信息;
所述插入子模块包括:
插入子单元,用于将所述表单元素的代码按分组插入所述html框架代码中,获得中间表单页面文档。
23.根据权利要求15所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收用户终端发送的访问请求;
所述第一获取模块包括:
获取子模块,用于获取与所述访问请求对应的配置文件;
所述装置还包括:
返回模块,用于将所述目标表单页面文档返回所述用户终端。
24.根据权利要求15所述的装置,其特征在于,所述装置还包括:
上传模块,用于将所述目标表单页面文档上传至内容分发网络服务器中。
25.一种表单页面渲染装置,其特征在于,包括:
第二获取模块,用于获取目标表单页面文档;所述目标表单页面文档中包括解析脚本以及表单元素的代码;所述目标表单页面文档基于配置文件中的表单元素的配置信息获得;
调用模块,用于调用所述解析脚本解析所述表单元素的代码。
26.一种装置,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行所述指令时,使得所述装置执行如权利要求1-11一个或多个的方法。
27.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行所述指令时,执行如权利要求1-11一个或多个的方法。
28.一种装置,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行所述指令时,使得所述装置执行如权利要求12-14一个或多个的方法。
29.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行所述指令时,执行如权利要求12-14一个或多个的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810936444.4A CN110889270B (zh) | 2018-08-16 | 2018-08-16 | 一种表单页面文档生成方法、表单页面渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810936444.4A CN110889270B (zh) | 2018-08-16 | 2018-08-16 | 一种表单页面文档生成方法、表单页面渲染方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110889270A true CN110889270A (zh) | 2020-03-17 |
CN110889270B CN110889270B (zh) | 2023-04-07 |
Family
ID=69744179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810936444.4A Active CN110889270B (zh) | 2018-08-16 | 2018-08-16 | 一种表单页面文档生成方法、表单页面渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110889270B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708529A (zh) * | 2020-06-23 | 2020-09-25 | 浪潮云信息技术股份公司 | 一种基于angular通过拖拽生成表单的实现方法 |
CN111736812A (zh) * | 2020-06-16 | 2020-10-02 | 北京三快在线科技有限公司 | 文档代码执行方法、装置、计算机设备及存储介质 |
CN111782314A (zh) * | 2020-05-22 | 2020-10-16 | 北京达佳互联信息技术有限公司 | 网页表单的处理方法、装置、电子设备及存储介质 |
CN111782213A (zh) * | 2020-06-30 | 2020-10-16 | 贵州北斗领航科技有限责任公司 | 基于dom的动态控制页面生成系统 |
CN112183573A (zh) * | 2020-08-20 | 2021-01-05 | 中船重工(武汉)凌久高科有限公司 | 一种基于聚类分析和富文本的Web应用系统设计方法 |
CN112380829A (zh) * | 2020-11-12 | 2021-02-19 | 平安普惠企业管理有限公司 | 一种文档生成方法及装置 |
CN112464070A (zh) * | 2020-11-25 | 2021-03-09 | 银盛通信有限公司 | 基于Vue的表单配置方法、系统、计算机设备及存储介质 |
CN112882707A (zh) * | 2021-03-09 | 2021-06-01 | 成都新希望金融信息有限公司 | 一种渲染方法、装置、存储介质及电子设备 |
CN113051170A (zh) * | 2021-04-01 | 2021-06-29 | 深圳市特游网文化技术有限公司 | 一种网页表单控件的验证系统及方法 |
CN113095055A (zh) * | 2021-04-20 | 2021-07-09 | 山石网科通信技术股份有限公司 | 表格修改方法、装置、非易失性存储介质、及处理器 |
CN113485702A (zh) * | 2021-06-21 | 2021-10-08 | 上海百秋电子商务有限公司 | 配置化生成前端页面的方法、装置、设备及存储介质 |
CN113591438A (zh) * | 2021-07-30 | 2021-11-02 | 远光软件股份有限公司 | 文本转换方法、电子设备及计算机可读存储装置 |
CN113626029A (zh) * | 2020-05-09 | 2021-11-09 | 中国人寿财产保险股份有限公司 | 一种动态生成页面的数据处理方法和系统 |
CN114912058A (zh) * | 2022-06-27 | 2022-08-16 | 中银金融科技有限公司 | 一种银行客户尽职调查系统页面渲染方法及相关设备 |
CN112380829B (zh) * | 2020-11-12 | 2024-05-17 | 北京神州数码云科信息技术有限公司 | 一种文档生成方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346840B1 (en) * | 2001-02-26 | 2008-03-18 | Cisco Technology, Inc. | Application server configured for dynamically generating web forms based on extensible markup language documents and retrieved subscriber data |
CN102201009A (zh) * | 2011-06-21 | 2011-09-28 | 深圳市凯立德科技股份有限公司 | 一种表单生成方法和装置 |
CN102682126A (zh) * | 2012-05-16 | 2012-09-19 | 深圳市凯立德科技股份有限公司 | 一种表单数据的存取方法及装置 |
CN104572131A (zh) * | 2015-02-04 | 2015-04-29 | 浪潮软件股份有限公司 | 一种业务表单配置的方法和装置 |
GB201705016D0 (en) * | 2016-03-31 | 2017-05-10 | Sei Global Services Inc | Dynamic generation of electronic forms and documents |
CN106990976A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 一种网页脚本加载方法和装置 |
CN107943465A (zh) * | 2017-12-29 | 2018-04-20 | 北京奇虎科技有限公司 | 一种生成html表单的方法及装置 |
-
2018
- 2018-08-16 CN CN201810936444.4A patent/CN110889270B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7346840B1 (en) * | 2001-02-26 | 2008-03-18 | Cisco Technology, Inc. | Application server configured for dynamically generating web forms based on extensible markup language documents and retrieved subscriber data |
CN102201009A (zh) * | 2011-06-21 | 2011-09-28 | 深圳市凯立德科技股份有限公司 | 一种表单生成方法和装置 |
CN102682126A (zh) * | 2012-05-16 | 2012-09-19 | 深圳市凯立德科技股份有限公司 | 一种表单数据的存取方法及装置 |
CN104572131A (zh) * | 2015-02-04 | 2015-04-29 | 浪潮软件股份有限公司 | 一种业务表单配置的方法和装置 |
CN106990976A (zh) * | 2016-01-21 | 2017-07-28 | 阿里巴巴集团控股有限公司 | 一种网页脚本加载方法和装置 |
GB201705016D0 (en) * | 2016-03-31 | 2017-05-10 | Sei Global Services Inc | Dynamic generation of electronic forms and documents |
CN107943465A (zh) * | 2017-12-29 | 2018-04-20 | 北京奇虎科技有限公司 | 一种生成html表单的方法及装置 |
Non-Patent Citations (4)
Title |
---|
DAVE HERMAN 等: "HPar: A practical parallel parser for HTML--taming HTML complexities for parallel parsing" * |
尹航 等: "基于配置文件的web页面自动生成系统" * |
李维佳 等: "基于ASP.NET的Web表单自动生成引擎" * |
林向 等: "Web表单可视化定制原理研究" * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626029A (zh) * | 2020-05-09 | 2021-11-09 | 中国人寿财产保险股份有限公司 | 一种动态生成页面的数据处理方法和系统 |
CN113626029B (zh) * | 2020-05-09 | 2024-04-26 | 中国人寿财产保险股份有限公司 | 一种动态生成页面的数据处理方法和系统 |
CN111782314A (zh) * | 2020-05-22 | 2020-10-16 | 北京达佳互联信息技术有限公司 | 网页表单的处理方法、装置、电子设备及存储介质 |
CN111736812A (zh) * | 2020-06-16 | 2020-10-02 | 北京三快在线科技有限公司 | 文档代码执行方法、装置、计算机设备及存储介质 |
CN111708529A (zh) * | 2020-06-23 | 2020-09-25 | 浪潮云信息技术股份公司 | 一种基于angular通过拖拽生成表单的实现方法 |
CN111708529B (zh) * | 2020-06-23 | 2023-06-16 | 浪潮云信息技术股份公司 | 一种基于angular通过拖拽生成表单的实现方法 |
CN111782213A (zh) * | 2020-06-30 | 2020-10-16 | 贵州北斗领航科技有限责任公司 | 基于dom的动态控制页面生成系统 |
CN112183573A (zh) * | 2020-08-20 | 2021-01-05 | 中船重工(武汉)凌久高科有限公司 | 一种基于聚类分析和富文本的Web应用系统设计方法 |
CN112183573B (zh) * | 2020-08-20 | 2023-05-05 | 中船重工(武汉)凌久高科有限公司 | 一种基于聚类分析和富文本的Web应用系统设计方法 |
CN112380829A (zh) * | 2020-11-12 | 2021-02-19 | 平安普惠企业管理有限公司 | 一种文档生成方法及装置 |
CN112380829B (zh) * | 2020-11-12 | 2024-05-17 | 北京神州数码云科信息技术有限公司 | 一种文档生成方法及装置 |
CN112464070A (zh) * | 2020-11-25 | 2021-03-09 | 银盛通信有限公司 | 基于Vue的表单配置方法、系统、计算机设备及存储介质 |
CN112882707A (zh) * | 2021-03-09 | 2021-06-01 | 成都新希望金融信息有限公司 | 一种渲染方法、装置、存储介质及电子设备 |
CN112882707B (zh) * | 2021-03-09 | 2024-02-09 | 成都新希望金融信息有限公司 | 一种渲染方法、装置、存储介质及电子设备 |
CN113051170A (zh) * | 2021-04-01 | 2021-06-29 | 深圳市特游网文化技术有限公司 | 一种网页表单控件的验证系统及方法 |
CN113095055A (zh) * | 2021-04-20 | 2021-07-09 | 山石网科通信技术股份有限公司 | 表格修改方法、装置、非易失性存储介质、及处理器 |
CN113485702A (zh) * | 2021-06-21 | 2021-10-08 | 上海百秋电子商务有限公司 | 配置化生成前端页面的方法、装置、设备及存储介质 |
CN113591438A (zh) * | 2021-07-30 | 2021-11-02 | 远光软件股份有限公司 | 文本转换方法、电子设备及计算机可读存储装置 |
CN113591438B (zh) * | 2021-07-30 | 2024-01-12 | 远光软件股份有限公司 | 文本转换方法、电子设备及计算机可读存储装置 |
CN114912058A (zh) * | 2022-06-27 | 2022-08-16 | 中银金融科技有限公司 | 一种银行客户尽职调查系统页面渲染方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110889270B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110889270B (zh) | 一种表单页面文档生成方法、表单页面渲染方法及装置 | |
CN111782330B (zh) | 一种基于Web应用的页面数据获取方法、装置及设备 | |
CN104185845B (zh) | 用于提供网页的二进制表示的系统和方法 | |
CN103077185A (zh) | 一种基于对象的自定义扩展信息的方法 | |
CN101599015A (zh) | 一种组件解析的方法和系统 | |
CN110727417B (zh) | 一种数据处理方法和装置 | |
CN108023918A (zh) | 一种服务信息获取方法、装置及系统 | |
CN101957756A (zh) | 一种智能移动终端程序快速生成系统及方法 | |
CN112417338B (zh) | 一种页面适配方法、系统及设备 | |
CN105988814B (zh) | 界面生成方法及装置 | |
CN110597896A (zh) | 一种数据展示方法、数据展示装置及终端设备 | |
CN113419729A (zh) | 基于组件化的前端页面搭建方法、装置、设备及存储介质 | |
CN112214202B (zh) | 一种无须写代码的手机程序开发系统 | |
CN101964742B (zh) | 一种网络开放能力使用方法、系统和装置 | |
CN112947900A (zh) | web应用开发方法、装置、服务器及开发终端 | |
CN103034990A (zh) | 出版物校验的方法和装置 | |
JP2001125855A (ja) | 動的Webページ生成プログラム | |
KR101228877B1 (ko) | 웹 디자인을 이용한 동적 웹 사이트 개발 장치 및 방법 | |
JP2002351781A (ja) | 画面表示用ページレイアウトを利用したコンテンツ生成装置 | |
CN115061785A (zh) | 信息下发方法、装置、存储介质及服务器 | |
CN113626016A (zh) | 一种基于Vue+Element UI+Koa2的前后端分离的可重用组件 | |
CN112068813A (zh) | 数据处理方法、设备及介质 | |
CN114371982A (zh) | 一种模拟测试方法、装置、设备及可读存储介质 | |
CN110908659A (zh) | 一种根据接口定义自动生成用户操作界面的方法及系统 | |
CN110837359A (zh) | 一种以GOLANG语言实现的MVC Web框架 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |