日期:2014-05-16  浏览次数:20305 次

JSON标准元数据定义描述语言的思考
最近在为XX速运公司做项目预研时, 为简化B/S开发, 需将Ext封装成Jsp Taglib,
网上已有多种封装方案, 如: exttld, 以及金蝶将Ext封装成JSF标签等,
公司原也有一套封装, 但文档不全且不太稳定, 所以决定重新封装,
通过三天的努力已基本稳定, 感谢所有开发人员的速度,
我们采用和exttld相似的与Ext一对一封装, 这样做学习成本较低, 灵活性较强(不会出现实现不了某功能), 文档也可以采用Ext已有的, 当然也对数据传输层进行了简化,
另外这样封装比较简单, 不易出太多BUG, 易于稳定, 也是现在快速封装的目标.

一阵忙碌后, 今天静下心来想了一下, 我们为什么封装?
Ext本身已经采用JSON配置方式进行了简化, 而我们做的只是转换.
最大的理由是TagLib在Jsp编辑时有自动提示, 以及静态错误检查.
因为没人记得清那些JSON配置, 而"ALT+/"是最好的提示方式.
不用打开浏览器查错也是Java开发人员期望的.

想到这, 那是不是JSON缺了什么, 导致这样无畏的转译工作?
是的, JSON缺标准的元数据定义. XML为什么能自动提示? 为什么能查错?
因为XML有DTD, 有XSD. 那为什么不给JSON也定义一套呢?
如果给JSON定义了描述语言, IDE会非常易结合,
JSON现在越来越流行, 其比XML更简洁, 便于传输,
C/S开发也开始采用JSON风格, 如: JavaFX等.
而标准的元数据定义有助于更统一, 更方便的使用.
不知有没有这样的标准在开始, 如果没有, 或许可以发起开源, 大家试着定义一套.
1 楼 JavaInActoin 2008-03-17  
想法不错,不过这样一搞,不又把json搞回成xml了么。
2 楼 javatar 2008-03-17  
JavaInActoin 写道
想法不错,不过这样一搞,不又把json搞回成xml了么。

json与xml的区别并不在于描述语言的存在, 无所谓变成xml,
元数据定义可以是外置的, 对JSON并不侵入,
并且描述语言最好采用宿主语言, 也就是用JSON语法定义JSON描述语言,
就像XSD定义XML, 而XSD本身也是XML一样.
3 楼 fins 2008-03-18  
能否把你们封装的共享一下呀 嘿嘿
4 楼 sp42 2008-03-18  
json.org上好象有人在搞类似的工作。
5 楼 tin555 2008-04-23  
我也下了一个exttld,但是老是报错。你能帮我看看是怎么回事吗?
org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 47 in the jsp file: /WEB-INF/tags/ext/util/processTagAttributes.tag
Generated servlet error:
Syntax error on token "<", ( expected

An error occurred at line: 47 in the jsp file: /WEB-INF/tags/ext/util/processTagAttributes.tag
Generated servlet error:
Syntax error, insert ")" to complete Expression

An error occurred at line: 47 in the jsp file: /WEB-INF/tags/ext/util/processTagAttributes.tag
Generated servlet error:
Syntax error on token "<", ( expected

An error occurred at line: 47 in the jsp file: /WEB-INF/tags/ext/util/processTagAttributes.tag
Generated servlet error:
Syntax error on token "(", invalid Expression

.........


我的email:tin_555@163.com
6 楼 tin555 2008-04-23  
QQ:52328075
7 楼 forefront 2008-09-04  
请问楼主,你们的java项目是使用Ext GWT 1.0还是ext js 2.2来做的封装?

我的异常网推荐解决方案:org.apache.jasper.JasperException: Unable to compile class,http://www.aiyiweb.com/j2ee/2308.html