前后台统一校验方法,装置,存储介质及电子设备与流程

文档序号:17663013发布日期:2019-05-15 22:30阅读:163来源:国知局
前后台统一校验方法,装置,存储介质及电子设备与流程

本公开涉及表单校验领域,具体地,涉及一种前后台统一校验方法,装置,存储介质及电子设备。



背景技术:

表单校验指的是针对用户输入内容的合法合规性检查,当用户输入内容非法时,表单提交失败。使用表单校验既可以防止无效的输入数据侵入,又保障系统的安全性和稳定性。因此几乎所有业务应用都会实现不同程度的表单校验。

目前的表单校验方法通常采用前后台统一校验方法,前台校验使用前台脚本在执行提交请求前校验,若校验未通过,直接给出错误提示信息指导用户按照正确的方式进行输入,终止提交请求;后台校验在后台控制器接收到前台传递的数据后进行校验,若校验未通过,抛业务异常,终止后续业务处理。

但是,相关技术在实现前后台统一校验时,一般都是采用约定的方式,即前后台采用相同的校验规则各自编码实现。这就使得在校验规则改变时,需要分别对前后台的编码进行改动,导致编程人员的工作量增加,且影响表单校验的效率。



技术实现要素:

本公开的目的是提供一种前后台统一校验方法,装置,存储介质及电子设备,用以解决现有表单前后台统一校验方法的编码复杂且通用性差的问题。

为了实现上述目的,本公开提供一种前后台统一校验方法,包括:

基于数据库表创建实体模型,所述实体模型包括数据表字段与实体类的映射关系,以及所述数据库的校验元数据信息;

根据所述实体模型生成实体类,其中,所述实体类中包括所述校验元数据信息的校验注解,所述检验注解用于对前台提交的表单进行后台校验;

在绘制前台页面时,根据所述实体模型生成数据集,其中,所述数据集包括根据所述校验元数据信息生成的页面校验元数据,所述页面校验元数据用于对在所述页面创建的表单进行前台校验;

在所述页面创建表单时,将所述表单的控件与所述页面校验元数据进行绑定。

可选地,所述方法还包括:

遍历已创建表单的控件,根据与每一控件相绑定的页面校验元数据对该控件进行前台校验;

若对所述表单的所有控件的前台检验均无误,则将所述表单提交到后台;

在对所述表单的任一控件的前台校验失败时,输出该控件有误的提示信息。

可选地,所述方法还包括:

若后台接收到前台提交的表单,则根据所述实体类中的校验注解对所述表单进行后台校验;

在对所述表单的任一控件的后台检验失败时,停止后台对所述表单进行的业务处理。

可选地,所述方法还包括:

周期性检测所述数据库的校验元数据信息是否发生变更;

在检测到所述数据库的校验元数据信息发生变更时,根据变更后的校验元数据信息对所述实体类中的检验注解以及所述数据集的页面校验元数据进行更新。

本公开实施例还提供一种前后台统一校验装置,包括:

实体模型创建模块,用于基于数据库表创建实体模型,所述实体模型包括数据表字段与实体类的映射关系,以及所述数据库的校验元数据信息;

后台实体类生成模块,用于根据所述实体模型生成实体类,其中,所述实体类中包括所述校验元数据信息的校验注解,所述检验注解用于对前台提交的表单进行后台校验;

前台数据集生成模块,用于在绘制前台页面时,根据所述实体模型生成数据集,其中,所述数据集的元数据信息为根据所述校验元数据信息生成的页面校验元数据,所述页面校验元数据用于对所述页面创建的表单进行前台校验;

表单控件绑定模块,用于在所述页面创建表单时,将所述表单的控件与所述页面校验元数据进行绑定。

可选地,所述方法还包括:

前台校验模块,用于遍历已创建表单的控件,根据与每一控件相绑定的页面校验元数据对该控件进行前台校验;

提交模块,用于在所述前台校验模块对所述表单的所有控件的前台检验均无误,则将所述表单提交到后台;

提示输出模块,用于在所述前台校验模块对所述表单的任一控件的前台校验失败时,输出该控件有误的提示信息。

可选地,所述方法还包括:

后台检验模块,在后台接收到前台提交的表单时,根据所述实体类中的校验注解对所述表单进行后台校验;

业务执行模块,用于在所述后台校验模块对所述表单的任一控件的后台检验失败时,停止对所述表单进行的业务处理。

可选地,所述方法还包括:

检测模块,用于周期性检测所述数据库的校验元数据信息是否发生变更;

更新模块,用于在检测到所述数据库的校验元数据信息发生变更时,根据变更后的校验元数据信息对所述实体类中的检验注解以及所述数据集的页面校验元数据进行更新。

本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项前后台统一校验方法的步骤。

本公开实施例还提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现上述任一项前后台统一校验方法的步骤。

采用上述技术方案,至少能够达到如下技术效果:

在根据数据库表创建实体模型时,生成数据库的校验元数据信息,并在根据实体模型生成的实体类中同步生成校验注解,得到在后台对表单进行校验的数据,并且在绘制前台页面时,基于实体模型创建数据集,该数据集包括基于数据库校验元数据信息生成的页面校验元数据,该页面校验元数据用于在表单数据绑定时与页面控件进行映射,以便调用页面校验元数据对该页面控件进行前台校验。由于前后台的校验信息均是基于数据库表的校验元数据信息生成,从而保证了前后台的校验规则一致。并且,在校验规则改变时,可以根据变更后的数据库校验元数据信息同步更新实体类中的校验注解,以及数据集中的页面校验信息,无需对前后台的编码进行改动,提升了代码的通用性,减少了编程人员的工作量。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开实施例提供的一种前后台统一校验方法的流程示意图;

图2是本公开实施例提供的一种数据库元数据的示意图;

图3是本公开实施例提供的一种基于图2所示的数据库元数据生成的校验注解的示意图;

图4是本公开实施例提供的一种基于图2所示的数据库元数据生成的页面校验元数据的示意图;

图5是本公开实施例提供的另一种前后台统一校验方法的流程示意图;

图6是本公开实施例提供的一种前后台统一校验装置的结构示意图;

图7是本公开实施例提供的另一种前后台统一校验装置的结构示意图;

图8是本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

本公开实施例提供一种前后台统一校验方法,如图1所示,该方法包括:

s101、基于数据库表创建实体模型,所述实体模型包括数据表字段与实体类的映射关系,以及所述数据库的校验元数据信息。

值得说明的是,实体模型是一个xml(extensiblemarkuplanguage,可扩展标记语言)的数据结构,其与数据库表的元数据信息一一映射,在创建实体模型时同步根据数据库表的元数据信息生成校验元数据信息,其中,数据库表的元数据信息是指定义字段属性的数据,例如,字段的类型,长度等,通常情况下,对于字符串类型的字段,对应有字符串的长度要求,对于主键类型或者外键类型的字段,通常要求非空。这样,根据数据库的元数据信息可以生成相应的校验元数据信息,用于校验字段中填写的值是否符合规范。

s102、根据所述实体模型生成实体类,其中,所述实体类中包括所述校验元数据信息的校验注解,所述检验注解用于对前台提交的表单进行后台校验。

实体类是后台代码实现的一个用户对象,与数据库中存储的用户表对应,在根据实体模型创建该实体类时,可以同步根据该实体模型中的校验元数据信息生成校验注解,用于在后台对前台提交的表单进行校验。

s103、在绘制前台页面时,根据所述实体模型生成数据集,其中,所述数据集包括根据所述校验元数据信息生成的页面校验元数据,所述页面校验元数据用于对在所述页面创建的表单进行前台校验。

其中,数据集是在前台用于与表单控件一一绑定的json(javascriptobjectnotation,js对象简谱)数据,在根据实体模型生成数据集时,能够基于实体模型中的校验元数据信息生成页面校验元数据,该页面校验元数据即为前台的js脚本,用于描述表单控件的属性。

s104、在所述页面创建表单时,将所述表单的控件与所述页面校验元数据进行绑定。

具体地,在创建表单时,针对表单中的每一控件,根据与该控件名称一致的数据集中的页面校验元数据生成该控件的属性,这样,可通过遍历表单中的所有控件,依次调用每个控件的校验方法对控件的属性进行校验。

采用上述方法,在根据数据库表创建实体模型时,生成数据库的校验元数据信息,并在根据实体模型生成的实体类中同步生成校验注解,得到在后台对表单进行校验的数据,并且在绘制前台页面时,基于实体模型创建数据集,该数据集包括基于数据库校验元数据信息生成的页面校验元数据,该页面校验元数据用于在表单数据绑定时与页面控件进行映射,以便调用页面校验元数据对该页面控件进行前台校验。这样,在校验规则改变时,可以根据变更后的数据库校验元数据信息同步更新实体类中的校验注解,以及数据集中的页面校验信息,无需对前后台的编码进行改动,提升了代码的通用性,减少了编程人员的工作量。

为了使本领域技术人员更加理解本公开实施例提供的技术方案,下面对上述方法步骤进行详细的举例说明。

图2是数据库的元数据的一种示意,如图所示,该数据库元数据描述了字段名称name,并且,如图2中框住的部分代码所示,该元数据限定了字段为非空(not-null),以及长度length为32。

进一步地,基于图2所示的数据库元数据,生成的实体类中的校验注解如图3所示,生成的前台数据集中的页面校验元数据如图4所示。

如图4所示,元数据metadata中,限定了控件值非空nullable,最大长度maxlength为32,其中,prompts是控件校验失败时输入的提示信息,可以由用户自行定义。

下面详细举例说明前后台进行校验的方法,如下所示为前台校验方法的代码的一种示意:

if(unieap.byid(“form1”).validate(true)){

//表单校验合法

}

即通过遍历表单中的所有控件id,依次调用每个控件的页面校验元数据,实现对表单中的全部属性进行校验。

在后台校验时,可通过遍历实体类的所有属性,读取get方法中的注解,对属性实际值进行校验。

由上可知,在校验规则改变时,可以根据变更后的数据库校验元数据信息同步更新实体类中的校验注解,以及数据集中的页面校验信息,无需对前后台的编码进行改动,即前台调用每个控件的页面校验元数据的代码以及后台读取get方法中的注解的代码,提升了代码的通用性,减少了编程人员的工作量。

可选地,在具体实施时,可以周期性检测所述数据库的校验元数据信息是否发生变更,在检测到所述数据库的校验元数据信息发生变更时,根据变更后的校验元数据信息对所述实体类中的检验注解以及所述数据集的页面校验元数据进行更新,实现前后台校验方法的统一,而无需更改前后台的校验代码。

图5是本公开实施例提供的另一种前后台统一检验方法,如图5所示,整个前后台统一检验方法包括后台处理过程以及前台处理过程,其中,根据数据库表创建实体模型,以及根据实体模型生成实体类(该实体类包括校验注解)属于后台处理,根据实体模型生成数据集(该数据集包括页面校验元数据),以及控件绑定属于前台处理。之后,在根据控件绑定的页面校验元数据进行前台校验时,本公开实施例可以遍历已创建表单的控件,根据与每一控件相绑定的页面校验元数据对该控件进行前台校验,并且在对所述表单的所有控件的前台检验均无误时,将所述表单提交到后台,在对所述表单的任一控件的前台校验失败时,可以输出该控件有误的提示信息,并结束校验。

进一步地,若后台接收到前台提交的表单,则可以根据所述实体类中的校验注解对所述表单进行后台校验,在对表单进行的后台校验均无误时,执行相应的业务操作,在对所述表单的任一控件的后台检验失败时,停止后台对所述表单进行的业务处理,结束流程。

参照图5所示的流程,若数据库的元数据信息发生变更,则可以对实体模型进行更新,进一步根据更新后的数据库校验元数据信息对实体类中的校验注解进行更新,以及对数据集进行更新,这样控件绑定的页面校验元数据也相应进行自动更新。而无需对前后校验和后台校验的代码进行变更,提升了代码的通用性,减少了编程人员的工作量。

本公开实施例还提供一种前后台统一校验装置,用于实施上述方法实施例提供的前后台统一校验的方法,如图6所示,该装置60包括:

实体模型创建模块601,用于基于数据库表创建实体模型,所述实体模型包括数据表字段与实体类的映射关系,以及所述数据库的校验元数据信息;

后台实体类生成模块602,用于根据所述实体模型生成实体类,其中,所述实体类中包括所述校验元数据信息的校验注解,所述检验注解用于对前台提交的表单进行后台校验;

前台数据集生成模块603,用于在绘制前台页面时,根据所述实体模型生成数据集,其中,所述数据集包括根据所述校验元数据信息生成的页面校验元数据,所述页面校验元数据用于对在所述页面创建的表单进行前台校验;

表单控件绑定模块604,用于在所述页面创建表单时,将所述表单的控件与所述页面校验元数据进行绑定。

采用上述装置,该装置在根据数据库表创建实体模型时,生成数据库的校验元数据信息,并在根据实体模型生成的实体类中同步生成校验注解,得到在后台对表单进行校验的数据,并且在绘制前台页面时,基于实体模型创建数据集,该数据集包括基于数据库校验元数据信息生成的页面校验元数据,该页面校验元数据用于在表单数据绑定时与页面控件进行映射,以便调用页面校验元数据对该页面控件进行前台校验。这样,在校验规则改变时,可以根据变更后的数据库校验元数据信息同步更新实体类中的校验注解,以及数据集中的页面校验信息,无需对前后台的编码进行改动,提升了代码的通用性,减少了编程人员的工作量。

可选地,如图7所示,该装置60还包括:

前台校验模块605,用于遍历已创建表单的控件,根据与每一控件相绑定的页面校验元数据对该控件进行前台校验;

提交模块606,用于在所述前台校验模块对所述表单的所有控件的前台检验均无误,则将所述表单提交到后台;

提示输出模块607,用于在所述前台校验模块对所述表单的任一控件的前台校验失败时,输出该控件有误的提示信息。

可选地,如图7所示,该装置60还包括:

后台检验模块608,在后台接收到前台提交的表单时,根据所述实体类中的校验注解对所述表单进行后台校验;

业务执行模块609,用于在所述后台校验模块对所述表单的任一控件的后台检验失败时,停止对所述表单进行的业务处理。

可选地,如图7所示,该装置60还包括:

检测模块610,用于周期性检测所述数据库的校验元数据信息是否发生变更;

更新模块611,用于在检测到所述数据库的校验元数据信息发生变更时,根据变更后的校验元数据信息对所述实体类中的检验注解以及所述数据集的页面校验元数据进行更新。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法实施例提供的前后台统一校验方法的步骤。

本公开实施例还提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现上述方法实施例提供的前后台统一校验方法的步骤。

图8是根据一示例性实施例示出的上述电子设备的一种框图。该电子设备可以被提供为一服务器。参照图8,电子设备80包括处理器801,其数量可以为一个或多个,以及存储器802,用于存储可由处理器801执行的计算机程序。存储器802中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器801可以被配置为执行该计算机程序,以执行上述的前后台统一校验方法的步骤。

另外,电子设备80还可以包括电源组件803和通信组件804,该电源组件803可以被配置为执行电子设备80的电源管理,该通信组件804可以被配置为实现电子设备80的通信,例如,有线或无线通信。此外,该电子设备80还可以包括输入/输出(i/o)接口805。电子设备80可以操作基于存储在存储器802的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

此外,本公开实施例提供的计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由电子设备80的处理器801执行以完成上述的前后台统一校验方法的步骤。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1