Think of Ext2.0 (1)

xiaoxiao2022-06-12  28

Ext2.0的选择需要冒很大的风险,确实Ext在界面上能够有很大的提升,但是客户端机器的性能和网络方面的制约,再加上Ext本身没有很好的实现工具支持。从编码角度来说,可能需要花费更多的时间,这相对于直接的Web开发。如果项目中缺少美工,又对访问性能或并发量不是特别的要求的Web开发,可以考虑使用,譬如说安全设备的控制界面。当然项目组成员必须忍受大量javascript编码。 

一般来说,Ext使用如下:

Ext 作为前台,Spring-Hibernate-Stucts作为整体的控制层,json-lib作为两者的交互。

当然后台是什么无所谓了,主要就是json字符串的拼凑

流程稍微记录了一下,后面有些不想写了,所以逻辑有些混乱。 

1.         Json-Lib

导入依赖库

commons-beanutils.jar

commons-collections-3.1.jar

commons-lang-2.1.jar

commons-logging.jar

ezmorph-1.0.4.jar

json-lib-2.2-jdk15.jar 

测试Bean

public   class  TestBean  ... {    String date1 = "111";    int date2 = 10;     public String getDate1() ...{        return date1;    }    public void setDate1(String date1) ...{        this.date1 = date1;    }    public int getDate2() ...{        return date2;    }    public void setDate2(int date2) ...{        this.date2 = date2;    }}

测试代码

        JSONObject jsonBean  =  JSONObject.fromObject( new  TestBean());        System.out.println(jsonBean);                List list  =   new  ArrayList();        list.add( new  TestBean());        list.add( new  TestBean());                JSONArray jsonList  =  JSONArray.fromObject(list);        System.out.println(jsonList);

输出:

{"date1":"111","date2":10}

[{"date1":"111","date2":10},{"date1":"111","date2":10}] 

正式使用再做一下字符串处理

 

2.         Ext使用

将整个Ext2.0的目录导入到MyEclipse中去

Docs可以全部删去,example 也可删去部分

只保留examples根目录下的内容

examples\examples.js中的开头修改成

Ext.BLANK_IMAGE_URL = 'ext-2.0/resources/images/default/s.gif';

将指向Ext网站的s.gif文件指向本地 

添加 ext-fix.js 修正radioForm控件从json数据获取信息时,工作不正常的问题

Ext.form.BasicForm.prototype.setValues  =   function (values) ... {         if(values instanceof Array)...{                          for(var i = 0, len = values.length; i < len; i++)...{                 var v = values[i];                 var f = this.findField(v.id);                 if(f)...{                     if ( f.getEl().dom.type == 'radio' ) ...{                         var group = this.el.dom.elements[f.getName()];                         for (var i=0; i < group.length; i++ ) ...{                             if(group[i].__ext_field) ...{                                 group[i].__ext_field.setValue(group[i].value == v);                                 if(this.trackResetOnLoad)...{                                     group[i].__ext_field.originalValue = group[i].__ext_field.getValue();                                 }                             }                         }                  }                   else                   ...{                       f.setValue(v.value);                     if(this.trackResetOnLoad)...{                           f.originalValue = f.getValue();                      }                  }               }           }       }else...{          var field, id;          for(id in values)...{               if(typeof values[id] != 'function' && (field = this.findField(id)))...{                  if( field.getEl().dom.type == 'radio' ) ...{                      var group = this.el.dom.elements[field.getName()];                       for (var i=0; i < group.length; i++ ) ...{                           if(group[i].__ext_field) ...{                               group[i].__ext_field.setValue(group[i].value == values[id]);                               if(this.trackResetOnLoad)...{                                  group[i].__ext_field.originalValue = group[i].__ext_field.getValue();                               }                          }                       }                  }                   else                  ...{                       field.setValue(values[id]);                      if(this.trackResetOnLoad)...{                            field.originalValue = field.getValue();                       }                   }               }            }       }       return this;    }            Ext.form.Radio.prototype.onRender  =   function (ct, position)  ... {     Ext.form.Radio.superclass.onRender.call(this, ct, position);      this.el.dom.__ext_field = this;    }       Ext.form.Radio.prototype.setValue  =   function (v)  ... {        if(v === true || v === 'true' || v == '1' || v === false || v === 'false' || v == '0'
转载请注明原文地址: https://www.6miu.com/read-4932984.html

最新回复(0)