WM framework V2.0开发平台完成

这段时间项目不是很紧,自己抽出时间来把以前的系统技术框架改进来下,算是v2.0吧。整个实现过程用啦2个多月的时间(算是快的)。

WM framework V2.0主要的技术路线从原来的s1i2迁移到s2i2s2。struts升级到啦版本2,对s2的了解不是很深(在以前的项目没有引入过),所以在WM framework2.0仅引入啦s2对多线程的实例过程,抛弃啦s1的单例模式。其他的基本上没用到,因为对s2的研究后,就喜欢上这点啦,o(∩_∩)o...哈哈。

WM framework2.0之所以引入s2,原因有1。看中spring对事物控制力度;2。WM framework整合更多的主流技术框架;

WM framework2.0还是秉承1.0的ajax数据请求模式(DOM+XML+BEAN)。其中大部分主推异步处理模式,毕竟同步处理很容易ie的司机和对客户的友好性。

2.0版本增加了异步处理,请求响应返回处理的回调函数,这是大伙对1.0反映最多的问题啦。

WM framework V2.0 前台js框架

2.0版本对各js对象进行了抽象,继承。

图片

各js对象函数的参数由以前的基本数据类型改为,数据对象object,这样防止了改函数参数不用同步到其使用模块。

WMqryService完成列表数据的查询;

WMeditService完成单位数据的增、删、改;

WMoptService动态select加载、联动、数据校验、标志数据取值,树形控件的处理。原打算把树处理分开,但是后台发现WMoptService可以胜任就没有麻烦啦。

 

2.0的js树

2.0中还是用的mztree和dtree,用mztree主要还是看中他对节点的增、删、改很方便,但是很郁闷的是mztree不可以用ajax的异步数据加载,老是提示“js没有权限”,跟踪了mztree的源代码,发现是在加载图片的时候错误,改了好几个写法,还是没搞定,这个问题在1.0中就困扰了好久,但是如果用同步数据加载就不会存在这个问题啦,看来只有哪天问下mz本人啦(可惜那家伙的qq不加我,没面子啊),最后没法子改用dtree来填补这个缺口啦。还有一个涉及js树的修改就是构建数据的排序问题,在1.0我是用了个“省事”通过修改的po的属性顺序(为这事,还有几个同事还觉得莫名其妙,o(∩_∩)o...哈哈)。

 

2.0对select的option动态构建修改

解决option 一次多联动问题(多个option,多个select对象);在1.0我发现凡是涉及两个以上option都是通过多次request,这样造成了没必要的多次请求(浪费)。所以在2.0修改了WMoptObject接受opt对象的类型可为object数组、字符串、单object对象。

 

2.0对表单字段值同步

很多时候一个页面表单的数据编辑不单单涉及一个数据表,而需要对个数据对象po的同步,一个简单的列子一个新用户的注册,可能就会涉及3个数据对象(用户注册信息logininfo,用户基本信息userinfo,用户信息扩展userinfo_other),按照1.0的数据处理方式,只能在前台先获取一个key然后同步。在2.0实现数据对象key同步后请求获取key的过程就可以舍掉。这样一来节约了页面处理的处理时间,又避免了key的浪费。

目前支持数据组合方式:

     11..:1;一对一

1:n...:n1对多

n:n;多对多(表对象数相等)

n:....:n;多对多(表对象数相等)

 

 

2.0对数据库事物控制

1.0里面我们使用的是ibatis的DAO框架来处理和控制数据的,但是ibatis后来好像不理DAO这个东东啦(够狠的),丢给spring去整合啦,所以,在2.0我们使用的spring来做事物控制。

 

2.0引入了HTC来封装树形控件和Key Input

htc这玩意儿还是2007在深圳做项目的时候接触过的啦,当时开始觉得htc这个东西很不错,提高了代码的重复可用和可移植性,可后来发现一个页面表单如果引入的htc控件过多,其页面本身的加载速度就会损失。所以在WM framework 2.0我没有过多做htc控件封装。仅弄了wm_tree.htc和wm_key.htc两个。因为取数和取树的地方做成htc控件可以少写n行js代码

 

htc方式加载tree:

<tsstudio:wm_dtree  id="testtree" objName="d" isCheck="true" ckParent="false"
  treeType="2" isUrl="true" refBut="true" cPanel="receText" keyPanel="receKeyText"/>

 

js脚本加载tree:

d = new dTree('d',cps+"/image/org/"); 
 d.config.folderLinks=true;
 d.setTreePanel(treeviewarea);
  d.setTreeType("1");
  d.setIsUrl(false);
  d.setRefBut(true);
  d.clearTree();

   var ac = new WMaction();
    var po = new WMparamObject();
 po.setActionType("1");
 po.setHitObjId(treehitdiv);
 po.setTextObjId(treeviewarea);
 po.setIsasy(true);
 po.setXmlStr(xmlStr);
 po.setUrl(cps+'/XmlService.do?type=4');
 po.setHandleObj(d);
 ac.setParamobj(po);
 ac.execute();

看出来啦吧,不是一个数量级。o(∩_∩)o...哈哈。

 

 

2.0对表单字段取值范围控制

这个基本上就是多加几个数据校验,没太多好说的。

 

 

 

 

 

以上基本就是WM framework 2.0的修改,也是2个多月敲键盘的成果。原来打算实现代码的自动生成,研究了freemaker好几天,还是没整出来,要考虑的东西太多啦,先放一边啦,不然到时候全部代码都自动生成,我们这些代码工人就没饭吃啦,2个多月说辛苦算不上,毕竟这段时间项目上的事情不多,留给我们打“酱油”的时间多多()。快到10国庆啦,这也算是我对中国信息化建设的一点小礼物吧。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值