使用decj简化Web前端开发(二) 声明式表单增强和页面初始化

引言

表单(Form)是Web应用中数据展现和收集常用的HTML元素。开发人员经常需要处理表单的数据填充、数据校验和格式化以及数据打包。另外,页面在加载完毕后往往需要执行一段初始化逻辑。本期将介绍decj对HTML表单的声明式增强和声明式页面/模块初始化这2个特性。

声明式表单功能增强

decj以声明式编程的方式对表单数据展现和收集功能进行增强。在数据展现方面,decj支持根据指定的数据自动将数据填充到表单中、对表单字段值进行自动格式化。在数据收集方面,decj支持对表单字段值进行自动校验、对表单数据自动打包提交。同时,decj支持对表单的Reset按钮的功能进行增强。

模块业务对象元数据

decj的表单增强功能依赖于模块的业务对象元数据。从MVC(Model-View-Control)设计模式的角度来看,表单本身属于View,其所展现和收集的数据属于Model。decj称呼每个Model的实例为一个业务对象(Business Object,简称BO)。一个页面中可以有多个表单,这些表单对应各自的业务对象。模块的业务对象元数据则用于描述一个模块所涉及的各个业务对象的信息,包括业务对象的名称、别名和类型。业务对象类型则描述了该类型的业务对象包含哪些字段以及每个字段的名称、别名、字段类型、数据校验规则以及格式化要求。

模块的业务对象元数据是一个普通Javascript对象,可以使用JSON进行声明。其格式化如下:

{"boMetaData":{
    "BO类型名称":{
      //字段声明
    }
  },
  "bo":{"BO名称":{"type":"BO类型名称","alias":"BO别名"}}
}

上述JSON对象中,属性“bo”的值声明了模块使用了哪些BO,并声明了各个BO的名称、别名以及BO类型名。BO的别名默认为BO名称本身,它对应于表单的name属性值。每个BO类型的声明包含了若干个字段声明。每个字段声明的格式如下:

"字段名称":{
  "stereoType": "字段类型名称",
  "alias":"字段别名",
  "typeParam":{},//声明字段类型参数
  "validation": {
    "数据校验规则": {}//声明数据校验规则
  }
}

字段声明描述了每个字段的类型名称(stereoType)、字段别名(alias)、字段类型参数(typeParam)及数据校验规则(validation)。其中字段别名默认为字段名本身,它对应表单控件的name属性值。

假设某IT社交网站要实现一个会员信息编辑的功能,会员信息包括会员的姓名、性别、技能专长领域等,如图1所示:

图1. 虚构的某IT社交网站的会员信息页面

本栏目更多精彩内容:http://www.bianceng.cn/webkf/tools/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据
, 对象
, 表单
, 收集网页字段
, web表单
, 类型
, 别名
, 字段
, 表单页面
, 格式化字段数据
, 页面表单
, 字段别名
, 声明对象
表单字段
前端 简化信息录入、前端表单验证、前端自动生成form表单、前端表单验证插件、前端提交表单,以便于您获取更多的相关知识。

时间: 2024-10-27 11:01:34

使用decj简化Web前端开发(二) 声明式表单增强和页面初始化的相关文章

使用decj简化Web前端开发(一)

声明式Javascript动态加载和浏览器事件绑定 引言 Web前端开发中,开发人员经常需要处理一些常规问题,如: 在页面中引用多个相互存在依赖关系的Javascript文件 在页面中引用CSS文件 浏览器事件绑定 表单的数据填充.数据打包提交.数据校验和格式化 页面初始化逻辑 采用传统的命令式编程范式来处理这些问题时,开发人员不得不反复地通过编写代码调用相关API来完成这些常规任务.事实上,开发人员的主要精力应该集中在业务逻辑实现上,而非在这些常规任务上过多消耗时间.声明式编程范式可以帮助开发

使用decj简化Web前端开发(三) 声明式国际化

引言 本期将介绍decj的国际化(I18N)支持,包括声明式多语言支持和声明式CSS文件动态按需加载. 声明式CSS文件按需加载 使用decj框架,开发人员只需要在模块定义中声明模块所需的各个CSS文件,即可实现这些CSS在该模块被加载时而被动态加载,而无需事先在页面中添加link标签来引用各个CSS文件. 模块定义的css属性用于声明模块所需的各个CSS文件.该属性值是一个字符串数组,其各个元素为所要加载的CSS文件的URL.如果只需要加载一个CSS文件,css属性的值也可以是一个字符串.如清

WEB前端开发想要月薪2W吗?先掌握这些技能

所谓成功是没有捷径的,但是成功是有技巧的,这里面的技巧,就取决于你的专业度,程序员与程序员之间的薪资待遇,就在于你掌握技术的程度,今天小编分享7个CSS技巧,想拿高薪,一定要掌握今天分享的重点哦~ web前端开发工程师目前来讲是一个热门职位,但是要成为一个合格的web前端开发工程师,需要掌握的知识可不少,这就简单的讲讲. 大致的来讲,web前端开发工程师需要掌握的知识有:HTML.CSS.JAVASCRIPT.XML.JSON.服务器脚本语言(PHP,ASP,.NET,JSP等等).jquery

《Web前端开发最佳实践》——导读

前 言 Web前端开发入门难度并不高,但是初学者如果没有一个很好的学习和编码习惯,则开发水平的提高速度会变得很慢.下面几点是影响Web前端开发者技术提高的主要因素. 其一是开发者缺乏良好的实践指导.Web前端兴起的时间不长,很多大学都还没有来得及开一门专门讲解Web前端的课程,因此,大部分的Web前端开发者都是通过自学的方式来了解Web前端相关的技术.开发者学习前端技术的渠道很多,其中很大一部分是通过查找网络资源的方式,而网络上充斥着大量的错误或者过时的实践方法,这些实践方法很容易误导初学者,使

html5-请问现在热门的web前端开发语言或技术,都有哪些啊?

问题描述 请问现在热门的web前端开发语言或技术,都有哪些啊? 因一开始入门就是学的js,然后就自然转上jquery了.后恰逢 html5 技术的发展,一直就用jquery+css+js,搞定了我遇到的几乎所有的事,后端就用的php+mysql,感觉简单也够用了. 最近遇到一大帮 JSP 应聘前端工程师,反而 jquery 程序员很少很少,就纳闷了,JSP 很好用吗?我一直觉得HTML5技术下,是可以取代JSP ASP什么的. 解决方案 html5我觉得在移动端使用的非常多 因为能跨平台,但是不

《Web前端开发最佳实践》——2.5 Web前端代码开发和调试

2.5 Web前端代码开发和调试 2.5.1 Web前端集成开发环境 很多集成开发环境(IDE)都集成了前端代码IDE,如Visual Studio.Eclipse等,但在纯粹的前端开发中,这些IDE显得不够强大而且不够轻量.这里推荐两款强大的IDE:Aptana Studio和WebStorm. Aptana Studio是一个开源的Web开发工具,有非常强大的JavaScript编辑器和调试器(见图2-4).它的主要特性包括: JavaScript函数.HTML及CSS的Code Assis

网站建设-求教web前端开发钟遇到的数据传递问题

问题描述 求教web前端开发钟遇到的数据传递问题 请教下各位 在此先谢谢了大家了 本人毕业于北大青鸟 半道子出家爱好前端 工作一年时间了 一直处于不断学习阶段 最近非常疑惑 因为在一直在一家网站建设公司任职web前端开发 公司接的项目都是展示型网站 一个项目也就一二十个页面 主要用jquery,html5,css3开发.着重页面炫酷效果这一块.最近看到ext.js,node.js 看着云里雾里 我现在的工作就是切片写页面 对于数据传输一点都没接触(php后台做了,数据也不是很多),我在想为了以后

《Web前端开发精品课 HTML与CSS进阶教程》——1.2 HTML、XHTML和HTML5

1.2 HTML.XHTML和HTML5 很多新手往往分不清HTML.XHTML和HTML5,这一节给大家详细讲解一下这三者的关系和区别. 1.2.1 HTML和XHTML HTML,全称HyperText Mark-up Language(超文本标记语言),是构成网页文档的主要语言.我们常说的HTML指的是HTML 4.01. XHTML,全称EXtensible HyperText Mark-up Language(扩展的超文本标记语言),它是XML风格的HTML 4.01,我们可以称之为更

Web前端开发之水印、图片验证码_javascript技巧

一.水印 1.画布 System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent); 2.创建绘制对象,告诉它往哪张图片上绘制 Graphics g = Graphics.FromImage(img); 3.绘制的内容 string s = www.itnba.com; 4.绘制的字体 Font f = new Font("黑体",130); 5.绘制的画刷 Brush b = ne