`
gkuiyj
  • 浏览: 88562 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
早在Java 1.2推出之时,Java平台中就引入了一个新的支持:java.lang.ThreadLocal,给我们在编写多线程程序时提供了一种新的选择。使用这个工具类可以很简洁地编写出优美的多线程程序,虽然ThreadLocal非常有用,但是似乎现在了解它、使用它的朋友还不多。     ThreadLocal是什么    ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是 thread local variable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLoca ...
一、简介: BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean 通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。 二、用法: BeanUtils是这个包里比较常用的一个工具类,这里只介绍它的copyProperties()方法。该方法定义如下: public static void copyProperties(java.lang.Object dest,java.lang.Object orig)   throws ...
applicationContext.xml中的配置文件如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans  default-autowire ="autodetect">      <bean id ...
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。     Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。     1. 得到某个对象的属性 public Object getProperty(Object owner, String fieldName) throws Exception { ...
全  称:Ext.Updater 命名空间:Ext 定义 于:UpdateManager.js 类  名:Updater 父  类:Observable 为Element对象提供Ajax式的更新能力。Updater能用于更新Element一次或者使用startAutoRefresh让Element具备定时更新的能力。 用法: //从一个Ext.Eleme ...
上几篇中老老实实地把Ext.data.Connection翻了个遍。这是基础。我记得Ext.Element有一个方法: load( String/Function url, [String/Object params], [Function callback], [Boolean discardUrl] ) : Ext.Element 直接调用Ext.Updater.update方法处理(它们使用一样的参数) ...
关于Ext.data中各个类的关系图我在前面已经做了一个,不用多言。其实啊。关于数据的显示,一般要经历三个流程:DataProxy-->DataReader-->Store。当然,三个部分都得是具体的类,这三个是抽象类。   如果按照一般性的 ...
有个事要说一下:DataProxy的子类呢,都有一个load来加载数据,DataReader的子类呢,都有一个read来读取数据。   而Ext.data.JsonReader有两个关键函数:read、readRecords。好了。来研究一下。   Ext.data.JsonReader = function(meta, recordType){        meta = meta || {};        Ext.data.JsonReader.superclass.constructor.call(this, meta, recordType || meta.fields);   } ...
  有了上一篇中所讲内容,一般情况下就可以应付了,不过,JsonReader有一些细节问题,还要细究。待某家一一道来。   构造函数已讲,下面依代码顺序讲解了。     read : function(response){         var json = response.responseText;         var o = eval("("+json+")");         if(!o) {             throw {message: "JsonReader.read: Json object not found ...
  Ext.TabPanel这个东西是最常用的组件之一,它继承自Ext.Panel。看了一个下午的源代码,对它的一些基本原理有所了解了。   下面要讲一些问题,这些问题绝对是本人独门秘笈,非入室弟子不传。哈哈哈。   一、组件的组成:   因为继承自Ext.Panel,所以,它也是由header、tbar、body、bbar、footer这几个部分构成,有人问:TabPanel的面板标签是在哪儿呢(就是你点击换页的东西)?它默认是放在header中的。但是,如果设置了:tabPosition的话就不一定了,tabPosition可取两个值:top、bottom。所以,标签可以是放在下面,但 ...
ExtJs对JavaScript的内建对象进行了扩展,对什么Object、Date、Array、Function、String的扩展,扩展方法想必诸位都烂熟于心了:用prototype的办法。这一篇讲一讲Function扩展的精妙之处,之所以突然研究这个问题,是因为我在研究 Ext.data.Store的源代码时,看到一行代码:   this.reader.onMetaChange = this.onMetaChange.createDelegate(this);   当初,我在研究Ext.js中的代码时,对于Function的几个扩展想不透、看不明,今日大悟。且见扩展的源代码:     ...
 Ext.data.Store,这个东西是JavaScript版的DataTable啊。貌似其他Ajax框架都没有这个玩意啊。可见啦,Ext是真的打算把b/s开发重新变成c/s开发啊。哈哈哈。便宜我等了。待某细研之。   Store类提供对记录集(Record)的包装,通过前面的研究可知,DataProxy取数据(url或数组或xml或json),DataReader用于从不规范的数据取出并格式化指定结构的记录集。记录的结构由Record.create创建。   DataProxy通过对Connection的调用取得数据(Response)后,在回调中调用DataReader的read函数, ...
上一篇主要是扎扎实实地翻译了一下Ext.data.Connection的官文档。尽管网上有位大侠也搞了个中文文档,但是,有不少遗漏的地方。这篇主要是研究一下文档中有些语焉不详的地方,这些问题只能透过研究代码来解释了。   一、Ext.data.Connection是否有依赖的模块   有。它建立在一个适配器类:Ext.lib.Ajax的基础之上,有人看了Ext.js的代码,发现,Ext貌似没有什么底层适配器,事实上,是有的,Ext.lib.Ajax提供了对XMLHttpRequest对象的底层的封装(我直接用ext-base.js)。   二、在options中哪些东西会被编码到url后面 ...
  ExtJs之所以能异步请求数据,全依赖于Ext.data.Connection。而Ext.Ajax只不过是Ext.data.Connection的一个实例罢了。当然Ext.Ajax比Ext.data.Connection多了一个函数:serializeForm(form),这个函数的作用是把一个表单里面的表单元素序列化。结果形式为:name1=value1&name2=value2……不过,如果是我的话,一般不会用这个东西,因为平常都是传json数据的,当然,如果不是请求WebService,而是请求aspx页面,那么这个东西还是有点用的。   先把它的官方文档翻译一下吧。 全  ...
怪不得我对Ext.Panel穷追猛打,前面已经写过四篇针对它的文章了。不过。Ext.Panel的问题搞得差不多了。下面我贴出研究代码,及效果图。再解释一下。这下图文结合了。以后自己忘记了,看一下就明白了。 var panel1; function newPanel1(){ var config1={title:'这是标题栏',      width:300,      height:300,      floating:true,      renderTo:Ext.getBody(),      draggable:{         insertProxy: false,        ...
Global site tag (gtag.js) - Google Analytics