• 关于 extjs数据库 的搜索结果

问题

ssh+extjs,使用拦截器做权限控制的问题?? 400 报错

爱吃鱼的程序员 2020-06-01 10:49:12 0 浏览量 回答数 1

问题

ExtJS4.1 Grid读取数据复选框打钩

长安归故里. 2020-01-31 14:03:51 0 浏览量 回答数 1

问题

extjs对php的ajax二次请求,权限复选框取了值返回后台,后台再计算权值value过来

小旋风柴进 2019-12-01 20:10:52 925 浏览量 回答数 1

高校特惠专场

助力学生创业梦,0元体验,快速入门云计算!

问题

EXTJS中什么原因导致从服务器读取出来的数据不能显示在列表里面呢?:报错

kun坤 2020-06-07 16:26:37 1 浏览量 回答数 1

问题

extjs4.2 与后台ashx交互

杨冬芳 2019-12-01 20:18:57 948 浏览量 回答数 1

回答

这个简单啊,你说的应该是自定义字段的功能吧,首先你要将字段名和汉字存放在数据库中,每次打开要自动生成的前台页面的时候取读取数据库,将这些字段以json格式传到前台,前台解析成对象,针对于每个对象(其实就是自定义字段)对应一个extjs的textfield,循环遍历这个装有自定义对象的数组,每个自定义字段添加一个textfiled,当然要注意布局问题

a123456678 2019-12-02 03:09:45 0 浏览量 回答数 0

问题

java web项目值问题Spring webwork 框架!

小旋风柴进 2019-12-01 20:07:10 1166 浏览量 回答数 3

问题

java web系统,如何禁止同一用户重复登录?

落地花开啦 2019-12-01 19:29:43 2116 浏览量 回答数 2

问题

extjs 下拉框只能显示从数据库返回的value值而无法显示文本值

云栖技术 2019-12-01 19:39:21 1071 浏览量 回答数 1

问题

能否将Jfinal再简化一些?? 400 报错

爱吃鱼的程序员 2020-05-31 00:39:58 0 浏览量 回答数 1

问题

快两年了,easyjweb 1.3beta终于发布了:报错

kun坤 2020-06-06 13:05:01 0 浏览量 回答数 1

回答

      jfinal 从第一个版本开始就已经支持楼主的需求了,jfinal 提供了 Db + Record 模式,可以极度方便地解决你的问题,Record 可以对应所有的表,也无需添加映射,她相当于一个通用的 Model,对数据库操作直接调用 Db 中的API 或者直接 Db.xxx(sql, p) 即可。      以上解决了楼主提出的 Model 多或者重复的问题(其实也没多少重复,因为一个Model就一行代码而已:class MyModel extends Model)。至于楼主说的 Controller 很多,可以使用一个通用的 controller,然后前端通过传参将 tableName 传送过来,这样就可以使用这同一个 controller 利用 Db + Record 模式对任意的 table 进行 CRUD 操作了。      对于页面来说,如果用一些只需 json 数据的前端解决方案来说,只接 renderJson() 即可,其它情况可以使用 Freemarker 模板,仅仅使用四五个页面即可解决任意数据表的 CRUD。      总结一下,JFinal 提供了一个极简的基本框架供工程师使用,具体怎么用要看工程师各自的发挥了。 ###### 表和controller 有什么关系呢?不是所有的表都要去做一个model,我很多关系比较弱的表直接用Record来操作 ######为何不搞通用类呢?坏处在哪里?什么叫关系弱?###### 你这考虑的就不对啊 难道所有人都用extjs? ######这是做后台,不重复的就生成吧###### 多谢指教。对于freemarker我还是持保留意见,它是服务器端的模板引擎,不可能满足前端用户的各种需求。还不如直接由json把数据交给前端的js框架,客户要怎么展示就怎么展示。Db + Record 模式不知道是不是少了一次java对前端数据的检查,而是把数据直接交给数据库检查?有了DB+Record为什么还要model?model模式是不是操作数据库前要从数据库里调用一下各个字段的属性对数据进行检查,然后再把数据传给数据库crud?这种模式也会增加数据库的一些负担。 ######我对你的观点理解是:你想让JFinal完全支持只用极少代码来实现CRUD这种情况。 如果我猜想说得对,那么,我想说,人生不止是衣食住行,还有娱乐、结婚生子等。而JFinal不仅让你可以衣食住行,还能让你有娱乐并结婚生子。并且让你自己可以创造各种衣食住行、娱乐、结婚生子的方式,而不是通过限制,让所有人只存在一种衣食住行、娱乐、结婚生子的方式。######对于model来说,如果能少写几行代码更好。###### 个人拙见: 1. freemarker是一个插件(但是是default的render),但是如果你手动调用renderJson() 就会返回json。一般做服务的时候,我也是不用freemarker的。 2. 我感觉Db + Record 模式应该和前端没有关系的,看你怎么在前端把数据给后端处理 3. 有了DB+Record为什么还要model: DB+Record是一个通用的工具,如果用model,你可以定义自己的object。如果系统比较复杂,通过定义,处理自己的类来实现更复杂的功能。 4. 最后一个问题,我不太清楚,感觉数据检测是在java端做的?@jfinal ######JFINAL在处理页面上传来大量错误的数据时(在遭到js脚本攻击时)究竟做了什么?如果我不写检查代码的话,承受这种攻击的是应用服务器还是数据库服务器?在受错误数据攻击时,使用model和使用DB+recorder模式有什么区别?(注意:是程序员在java中没有写数据类型的检查代码时。)######每多写一行重复的代码都是犯罪。

爱吃鱼的程序员 2020-05-31 00:40:00 0 浏览量 回答数 0

问题

跪求大神进来看一下啊

卡花 2019-12-01 21:39:16 5681 浏览量 回答数 3

问题

跪求大神给推荐搭配一下阿里云产品啊

卡花 2019-12-01 21:39:13 5100 浏览量 回答数 1

问题

Java开发工程师必备技能

小柒2012 2019-12-01 20:55:20 11780 浏览量 回答数 3

回答

用上 FreeMarker 后,再也不需要 JSP了,JSP相对来说弱爆了,连 layout 功能都没有,layout 现在是基本配置了###### 引用来自“爪哇老妖”的答案 这个真可以有,JSP、Velocity、Freemarker这些都属于动态模版技术,HTML呢,直接就是静态模版技术,也许你会反问我可以用ajax来实现后台调用数据啊,可是我很担心你那页面的加载速度和用户体验,情况更严重的是,有些页面的效果是根据后台数据或参数来展示的,对于你的这个想法,持保留意见。。。 从加载速度方面来说,并没有想像中那么慢,在Chrome和Firefox上速度飞快,加载HTML的时候根本感觉不到它做了些什么,只是在IE上不太理想,页面巨大的话有时候确实会卡一下,不过随着IE版本的更新这个情况可能会慢慢解决掉。 用户体验方面感觉比原来刷页面的方式好的多,Ajax与后台交互,所以根本看不到讨厌的500错误页面了,用JS处理好后台返回的错误,提示信息更加易懂。 至于页面显示内容与数据库有关的问题,这都是交给后台组织好数据用JSON返回的,例如:{userid:1,operation: {'查询'}}和{userid:2,operation: {'查询','删除'}}之类,这样JS拿到JSON数据之后就知道该怎么构建页面了,当然,这些页面元素级的控制,完全可以放到数据库中去,动态的实时控制用户权限。 ######楼主说的情况跟extjs一样,抛弃动态页面,所有数据用js控制,展现,IE处理js虽然慢一点,但这是可控的,在加载的时候给个loading图片用户看起来比浏览器加载动态页面效果好些。要是js功底好,还可以写一些特效,用户体验就更好了。######+freemarker###### 看情况啊,可以有。 不过你说的情况,也有很多,尤其是网站很大,甚至页面的不同部分都是不同的小组做的话。 这时候不用落伍的iframe,就用ajax,jsonp了。 ###### 引用来自“闫晓沛”的答案 +freemarker 是直接访问freemarker的模板吗?这样也确实可以代替JSP,不过还是得走一下Java容器,感觉不如直接让Apache处理HTML的好 ###### 这个真可以有,JSP、Velocity、Freemarker这些都属于动态模版技术,HTML呢,直接就是静态模版技术,也许你会反问我可以用ajax来实现后台调用数据啊,可是我很担心你那页面的加载速度和用户体验,情况更严重的是,有些页面的效果是根据后台数据或参数来展示的,对于你的这个想法,持保留意见。。。 ######回复 @lovinglily : ”世界上不会有一个页面是预先设计好的,因为它有数据“乔布斯说的######意思是,静态页面预先设计好布局的话,并不是根本意义上根据后台数据动态改变,这对页面数据显示有影响是吧..######你能保证所有用户的浏览器都能处理你的这些数据?######跨浏览器确实是一个大问题,可以借助jQuery这样的JS库来解决,虽然有些时候也不是很完美,但是够用了######对于jsp freemarker 等之类的都是属于动态模板,要知道它们最终都是翻译成html代码给浏览器,所以没有替代这种说法。只能说哪种情况更适合你的应用了。如果动态交互更多 且动态判断多的情况下 你用ajax动态请求的方式显得很蹩脚,这中间有个取舍和平衡点######同意你的观点###### 引用来自“爪哇老妖”的答案 这个真可以有,JSP、Velocity、Freemarker这些都属于动态模版技术,HTML呢,直接就是静态模版技术,也许你会反问我可以用ajax来实现后台调用数据啊,可是我很担心你那页面的加载速度和用户体验,情况更严重的是,有些页面的效果是根据后台数据或参数来展示的,对于你的这个想法,持保留意见。。。 我能保证所有用户浏览器都能处理服务器发给它的HTML,很难保证用户浏览器能处理我页面里的所有Ajax数据请求。 ######回复 @xmut : js不可能运行的很慢,就算被我们喷的无地自容的IE6,其实也是大量的js在运行。一个页面的js不可能很多,多到不能处理的地步,否则是本身就设计有问题的######啥年代了,还在纠结浏览器能不能运行js。######没错,这样的项目架构确实存在禁用JS之后玩不转的情况,但是现在有几个项目不用JS的呢,我们可以把“开启JS”作为项目运行必需的环境提出来######确实!楼主把页面控制逻辑全部交给javascript,万一客户端javascript被禁用,或者javascript运行速度很慢,这反而影响了客户体验!######有还是没有 ,看项目的需要,没有不能替代的技术方案。

爱吃鱼的程序员 2020-06-04 16:49:07 0 浏览量 回答数 0

问题

还原json循环引用对象的一种办法? 400 报错

爱吃鱼的程序员 2020-05-30 22:21:39 0 浏览量 回答数 1

回答

作为一个软件工程专业的过来人,希望我的回答能够帮助你,假设你每天坚持学习 首先找一本简单的教材,先对java有个基本的认识(大概看那么半个月就差不多了,随便下载一本入门的书就行了) 然后推荐你看<<java核心技术>>,分为上下两卷,已经是第八版了,大概有一千六七百页;当 你看完后,基本的java知识已经掌握了(记住,一定要多练习啊)(我那时候一个暑假看完第一遍,每天看将近十个小时加练习,但是要弄懂,呵呵,至少看个三四遍吧,这两本书只要能搞懂70%就很不错了) 这个时候你可以看看<<thinking in java>>中文名"java编程思想",这本书写的比较难,如果你看不懂,那么你要多做练习,慢慢看,如果看完了,而且懂了,那么证明你的java水平到达了一个更高的层次;(去参加面试的时候问的那些java知识完全可以应付过来了)(或者你可以先看下面的书,边看thinking in java这本书,这样也是可以的,而且学习的效率应该会高些) 然后java就会分方向,j2me(手机编程)不建议你去学这个(要学就学android手机编程),已经过时了;j2ee方向(Web编程),先学html,javaScript,css(这些书多得数不清,呵呵),然后就学servlet和jsp,《jsp应用开发详解》(入门) 《Servlet与JSP核心编程》(核心)这两本书还不错,然后就可以学SSH(三大框架,这个书一大堆), 学习struts的时候建议你从struts1开始学起《精通Struts基于MVC的Java Web设计与开发》,然后就可以学习struts2《Struts2权威指南》,接下来学习Hibernate《精通Hibernate:Java对象持久化技术详解》,最后学习Spring《spring2.0技术手册》(提示:只要你java基础学得好,这些东西都会学得很快) 这个时候你就要把注意力放在设计模式,数据结构和计算机算法上面来了, 设计模式可以先看<<深入浅出设计模式>> 然后再看<<java与模式>>, 数据结构建议你看清华大学严慰敏老师写的那本教材; 计算机算法要了解基本的排序,如果你不做底层,只做应用的话,没有必要去看那个<<算法导论>这本书太难了。 (设计模式,数据结构和算法才是真正的精髓,要有很多年的编程经验才能够使用得游刃有余,光看懂还不行的,一定要多练习,到了这个境界才是真正的java高手)(我学java有三年了,这是我的体会) 等你掌握前面的这些知识之后,推荐你看<<effective java>>,这本书是目前java领域公认的高级书籍。在项目中你肯定会遇到一些前端的知识,那么你得精通javascript,<<JavaScript权威指南>>(入门), <<JavaScript高级程序设计>>(进阶),这两本书弄懂了,那么学习jquery和extjs都会很快的。 还有要提醒你一下,对于初学者,不要使用eclipse编程工具,建议你先用记事本写程序,当你比较熟练了之后就可以使用eclipse这些工具了。 不要心急,不要图快,所有的书要一本本的慢慢看,多看几遍(一本书看上个四五遍,你就可以成高手,呵呵)。 java基础(j2se)的重点有:继承、多态、流、线程、网络编程、反射、集合、数据库连接、泛型、JNI技术、分布式技术还有解析xml也是很重要的,如果你想学android手机编程,那么SWING和AWT要熟悉一下。如果你不想学Web编程(j2ee),那么我建议你可以学android手机编程《Google+Android开发入门与实战》(入门) 《Google Android SDK开发范例大全》(深入)(建议把android当作业余爱好,把web编程当作主攻方向,因为j2ee包含了大量框架知识),书很多,可以自己去搜。多想 多看 多练才是王道,不要相信什么培训机构,这些都没啥用,真正学好只能靠你自己。 面向对象思想+java基础(j2se)+数据结构+设计模式+计算机算法 为核心,学好了这几个8000元/月轻而易举,什么都可以不学好,唯独这几科一定要学好,切记切记。 当然,随着你的技术水平的提高,你还会要学习其他的语言,不过这都是后话,等你把上面的东西掌握了,我再告诉你怎么学(高并发等内容),哈哈。 你现在还是在校的学生,那么请记住,不要沉迷于游戏,把时间用于学习上面的知识,千万别听一些人说什么'学校学的东西工作都用不到',完全是胡扯,我很负责任的告诉你,只有学校里学的东西才是真正有技术含量的东西,真正工作了,你就没有那么多时间来学习了(唉,感触很深呐) 以上的内容是我学习的总结,当然我走过很多弯路,现在我把这条正确的路径介绍给你,也是希望你能够少走弯路,希望几年之后,你能够比现在的我更牛X(呵呵,吹个小牛)。加油。参考资料来源:http://zhidao.baidu.com/question/404215211.html

晚来风急 2019-12-02 01:20:25 0 浏览量 回答数 0

问题

Ubuntu-14.04.1安装问题:报错

kun坤 2020-06-07 17:08:27 0 浏览量 回答数 1

问题

请教ExtJs与数据库通信的问题,请各位老师帮助?报错

爱吃鱼的程序员 2020-06-10 14:27:07 0 浏览量 回答数 1

问题

Hibernate的一对多自关联?报错

爱吃鱼的程序员 2020-06-14 16:00:10 0 浏览量 回答数 1

问题

【javascript学习全家桶】934道javascript热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:22 6202 浏览量 回答数 1

问题

最大限度利用 JavaScript 和 Ajax 性能:报错

kun坤 2020-06-05 22:56:50 0 浏览量 回答数 1

回答

既然dojo有,何不把dojo的借鉴一下.######对dojo不是很熟悉,没时间仔细研究。。。######不错,我一直希望有人能够做这个事情,在客户端解析fastjson的应用。######回复 @gohsy : 谢谢的你支持。使用好了并参与其中,才是更好的使用开源方式。也就是所谓的社区能读能改。我打算开一个项目用javascript实现fastjson的引用解析,希望你能够参与其中。######很早就在项目中引入了温少侠的fastjson druid,绝对达到商业软件的水准了,屡用不爽,越用越爽。###### fastjson循环引用的文档: https://github.com/alibaba/fastjson/wiki/%E5%BE%AA%E7%8E%AF%E5%BC%95%E7%94%A8 ######很高端。只是想知道,大部分语言的JSON API应该都不支持循环引用吧,那么循环引用是什么样的需求产生的?可以避免不? ######文章里面已经描述了,由hibernate生成的实体,包含着大量的关联引用,在稍大的一点的项目中,实体对象之间的关联关系会比较复杂,要么就手动处理有选择性的输出关联关系,要么就用fastjson这样能够处理循环引用的库,在数据使用方的底层,在做引用还原。######可以对每个域模型继承一个接口,接口提供一个将模型转为map的方法,map里可以包含引用,但也是对方转成map的,同时自己在转map那个方法里防止递归引用。######Ext.define('overrides.JSON', {     override : 'Ext.JSON',     decode : function(json, safe) {         me = this;         if (typeof me.JSON.retrocycle !== 'function') {             me.JSON.retrocycle = (function() {                 'use strict';                 var t_obj = typeof {}, t_arr = Object.prototype.toString                         .apply([]), t_str = typeof "";                 var walk = function(path, _xpath, array) {                     if (path.startsWith('$')) // 基于xpath直接定位                         return path;                     else { // 相对回溯定位                         var x, j = path.split('..'), k = -j.length                                 + (array ? 2 : 1), last = j.slice(-1)[0]                                 .replace('/', '.');                         x = k < 0 ? _xpath.slice(0, k) : _xpath.slice(0);                         if (last && !last.startsWith('.')                                 && !last.startsWith('['))                             last = '.' + last;                         path = x.join('.') + last;                     }                     return path; // 最终得到绝对xpath地址                 };                 return function($) {                     var xpath = ['$'];                     (function rez(value) {                         var i, item, name, path, _x;                         if (value && typeof value === t_obj) {                             if (Object.prototype.toString.apply(value) === t_arr) {                                 for (i = 0; i < value.length; i += 1) {                                     item = value[i];                                     if (item && typeof item === t_obj) {                                         xpath.push(xpath.pop() + '[' + i + ']'); // 下标引用要合并分级                                         path = item.$ref;                                         if (typeof path === t_str)                                             value[i] = eval(walk(path, xpath,                                                     true));                                         else                                             rez(item);                                         if (_x = xpath.pop())                                             xpath.push(_x.slice(0, _x                                                             .indexOf('['))); // 下标引用还原分级                                     }                                 }                             } else {                                 for (name in value) {                                     if (value.hasOwnProperty(name)                                             && typeof value[name] === t_obj) {                                         xpath.push(name);                                         item = value[name];                                         if (item) {                                             path = item.$ref;                                             if (typeof path === t_str)                                                 value[name] = eval(walk(path,                                                         xpath));                                             else                                                 rez(item);                                         }                                         xpath.pop();                                     }                                 }                             }                         }                     })($);                     return $;                 }             })();         }         var isNative = function() {             var useNative = null;             return function() {                 if (useNative === null) {                     useNative = Ext.USE_NATIVE_JSON && window.JSON                             && JSON.toString() == '[object JSON]';                 }                 return useNative;             };         }();         var decodingFunction;         doDecode = function(json) {             return json ? eval("(" + json + ")") : "";         };         if (!decodingFunction) {             // setup decoding function on first access             decodingFunction = isNative() ? JSON.parse : doDecode;         }         try {             return this.JSON.retrocycle(decodingFunction(json));         } catch (e) {             if (safe === true) {                 return null;             }             Ext.Error.raise({                         sourceClass : "Ext.JSON",                         sourceMethod : "decode",                         msg : "我尝试解析 an invalid JSON String: " + json                     });         }     } }); Ext.decode = Ext.JSON.decode; 在Extjs 4.2 里的写法。放在与app目录平齐的overrides里面。 然后在APP.js里面加入下面的东西。 Ext.application({     name: 'admin',     extend: 'admin.Application',     requires: [ //               'overrides.grid.RowEditor'     'overrides.JSON'            ],     autoCreateViewport: true }); ###### 这个解析的算法还有BUG。就是当A引用B一个集合,A在引用B单个的时候解析出来可能B指向的A就会错误。 举个例子:客户与客户联系人。客户有一个客户联系人的集合的属性,客户还有一个主联系人的属性。同时客户联系人也指向客户有一个属性,当这种对应关系的时候解析就会出错! 我尝试着想要去解决,但是智商有限搞不了。求作者在查看一下。 ###### 引用来自“刘思作”的评论 这个解析的算法还有BUG。就是当A引用B一个集合,A在引用B单个的时候解析出来可能B指向的A就会错误。 举个例子:客户与客户联系人。客户有一个客户联系人的集合的属性,客户还有一个主联系人的属性。同时客户联系人也指向客户有一个属性,当这种对应关系的时候解析就会出错! 我尝试着想要去解决,但是智商有限搞不了。求作者在查看一下。 看来这个问题还是有人关注的哈。  你可以给点数据,我有空的时候的看看。

爱吃鱼的程序员 2020-05-30 22:21:40 0 浏览量 回答数 0

回答

既然dojo有,何不把dojo的借鉴一下.######对dojo不是很熟悉,没时间仔细研究。。。######不错,我一直希望有人能够做这个事情,在客户端解析fastjson的应用。######回复<aclass="referer"target="_blank">@gohsy:谢谢的你支持。使用好了并参与其中,才是更好的使用开源方式。也就是所谓的社区能读能改。我打算开一个项目用javascript实现fastjson的引用解析,希望你能够参与其中。######很早就在项目中引入了温少侠的fastjsondruid,绝对达到商业软件的水准了,屡用不爽,越用越爽。###### fastjson循环引用的文档: <arel="nofollow">https://github.com/alibaba/fastjson/wiki/%E5%BE%AA%E7%8E%AF%E5%BC%95%E7%94%A8######很高端。只是想知道,大部分语言的JSONAPI应该都不支持循环引用吧,那么循环引用是什么样的需求产生的?可以避免不? ######文章里面已经描述了,由hibernate生成的实体,包含着大量的关联引用,在稍大的一点的项目中,实体对象之间的关联关系会比较复杂,要么就手动处理有选择性的输出关联关系,要么就用fastjson这样能够处理循环引用的库,在数据使用方的底层,在做引用还原。######可以对每个域模型继承一个接口,接口提供一个将模型转为map的方法,map里可以包含引用,但也是对方转成map的,同时自己在转map那个方法里防止递归引用。######Ext.define('overrides.JSON',{    override:'Ext.JSON',    decode:function(json,safe){       me=this;       if(typeofme.JSON.retrocycle!=='function'){          me.JSON.retrocycle=(function(){             'usestrict';             vart_obj=typeof{},t_arr=Object.prototype.toString                   .apply([]),t_str=typeof"";             varwalk=function(path,_xpath,array){                if(path.startsWith('$'))//基于xpath直接定位                   returnpath;                else{//相对回溯定位                   varx,j=path.split('..'),k=-j.length                         +(array?2:1),last=j.slice(-1)[0]                         .replace('/','.');                   x=k<0?_xpath.slice(0,k):_xpath.slice(0);                   if(last&&!last.startsWith('.')                         &&!last.startsWith('['))                      last='.'+last;                   path=x.join('.')+last;                }                returnpath;//最终得到绝对xpath地址             };             returnfunction($){                varxpath=['$'];                (functionrez(value){                   vari,item,name,path,_x;                   if(value&&typeofvalue===t_obj){                      if(Object.prototype.toString.apply(value)===t_arr){                         for(i=0;i<value.length;i+=1){                            item=value[i];                            if(item&&typeofitem===t_obj){                               xpath.push(xpath.pop()+'['+i+']');//下标引用要合并分级                               path=item.$ref;                               if(typeofpath===t_str)                                  value[i]=eval(walk(path,xpath,                                        true));                               else                                  rez(item);                               if(_x=xpath.pop())                                  xpath.push(_x.slice(0,_x                                              .indexOf('[')));//下标引用还原分级                            }                         }                      }else{                         for(nameinvalue){                            if(value.hasOwnProperty(name)                                  &&typeofvalue[name]===t_obj){                               xpath.push(name);                               item=value[name];                               if(item){                                  path=item.$ref;                                  if(typeofpath===t_str)                                     value[name]=eval(walk(path,                                           xpath));                                  else                                     rez(item);                               }                               xpath.pop();                            }                         }                      }                   }                })($);                return$;             }          })();       }       varisNative=function(){          varuseNative=null;          returnfunction(){             if(useNative===null){                useNative=Ext.USE_NATIVE_JSON&&window.JSON                      &&JSON.toString()=='[objectJSON]';             }             returnuseNative;          };       }();       vardecodingFunction;       doDecode=function(json){          returnjson?eval("("+json+")"):"";       };       if(!decodingFunction){          //setupdecodingfunctiononfirstaccess          decodingFunction=isNative()?JSON.parse:doDecode;       }       try{          returnthis.JSON.retrocycle(decodingFunction(json));       }catch(e){          if(safe===true){             returnnull;          }          Ext.Error.raise({                   sourceClass:"Ext.JSON",                   sourceMethod:"decode",                   msg:"我尝试解析aninvalidJSONString:"+json                });       }    } }); Ext.decode=Ext.JSON.decode; 在Extjs4.2 里的写法。放在与app目录平齐的overrides里面。 然后在APP.js里面加入下面的东西。 Ext.application({   name:'admin',   extend:'admin.Application',   requires:[//              'overrides.grid.RowEditor'   'overrides.JSON'          ],   autoCreateViewport:true}); ###### 这个解析的算法还有BUG。就是当A引用B一个集合,A在引用B单个的时候解析出来可能B指向的A就会错误。 举个例子:客户与客户联系人。客户有一个客户联系人的集合的属性,客户还有一个主联系人的属性。同时客户联系人也指向客户有一个属性,当这种对应关系的时候解析就会出错! 我尝试着想要去解决,但是智商有限搞不了。求作者在查看一下。 <imgsrc="http://static.oschina.net/uploads/space/2014/0603/125031_qDeH_90398.png"alt=""/> ######<divclass="ref"> 引用来自“刘思作”的评论 这个解析的算法还有BUG。就是当A引用B一个集合,A在引用B单个的时候解析出来可能B指向的A就会错误。 举个例子:客户与客户联系人。客户有一个客户联系人的集合的属性,客户还有一个主联系人的属性。同时客户联系人也指向客户有一个属性,当这种对应关系的时候解析就会出错! 我尝试着想要去解决,但是智商有限搞不了。求作者在查看一下。 <imgsrc="http://static.oschina.net/uploads/space/2014/0603/125031_qDeH_90398.png"alt=""/> 看来这个问题还是有人关注的哈。  你可以给点数据,我有空的时候的看看。

优选2 2020-06-09 15:59:55 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播