DynaBean是BeanUtils里的宝贝之一。有了动态Bean,就不用写那么多VO出来了,特别那些只是为了和View交互而存在的bean,i hate Form Bean。
DynaBean的用法很简单,特别是有了LazyBynaBean之后.
DynaBean car = new LazyDynaBean();
car.set("carNo",1);
car.set("owner","张三");
out.print(car.get("carNo"));
看着像一个map,只不过多了反射的功能,所以支持那些使用反射来获取属性的场合。
但是因为他没有car.getCarNo()这样的函数,只能用car.get("carNo"),所以也就不支持JSTL里面<c: out value="{car.carNo}">这样的语法,因为JSTL是默认转回car.getCarNo()的。
而且几经讨论,JSTL不支持 car.userFunction(),理由是不希望代码里有java代码:(
因此,还是写<%=car.get("carNo")>好了,如果是陷在JSTL的一个循环结构里,就要用从pageContext里面把bean拿出来,
又或者自己写的tag,幸亏也很简单,用BeanUtils.getProperty(bean,property)函数就可以了,
又或者,用Velocity和Freemarker。
最后,如果car.set("carNo",null),会得到一个莫名其妙的Object对象,如果要使它为Null,需要先定义他的类型。
因此,对于可能为Null的列,需要用LazyClass定义类型,幸亏也很Lazy, 不可能为Null的值可以不管。
LazyDynaClass lc = new LazyDynaClass();
lc.add("owner",String.class); // 指定null converter String
DynaBeancar = new LazyDynaBean(lc);
car.set("carNo",1);
car.set("owner",null);
分享到:
相关推荐
Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的。无论谁的项目,始终一天都会用得上它。我算是后知后觉了,第一回看到它的...4.5 动态Bean 见用DynaBean减除不必要的VO和FormBean
本文属于作者原创,属于apache Dany Bean 方面入门的文章.
有丰富的MINA通信软件开发经验,现在已经有成熟的底层框架(结合了反射、DynaBean、Spring等多种技术),可以实现程序自动对上位机和下位机之间的通信协议进行解析,并在国网公司智能电网的大型项目中使用。...
json-lib-2.4-jdk15.jar,ezmorph-1.0.6.jar,commons-lang-2.6.jar,commons-beanutils-1.9.3.jar,commons-collections-3.2.2.jar,commons-logging-1.2.jar
Java的Json串解析包,提供给有需要的同学。
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean commons-collections.jar 不加这个包 java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap commons-...
json-lib-2.2.3-jdk15.jar commons-beanutils-1.7.0.jar commons-httpclient-3.1.jar ...要在java里使用json用到的jar包怎么导入?把包粘贴到WebRootWEB-INFlib目录下就行了 不用自己单独建立libs目录
java8流源码可乐 代理的通用本体抽象层——一种上下文绑定器,用于跨 AOSE/MAS 和 M&S/ABM 重用异构代理代码 常见的 具有异步回调的函数式风格:和 ...API(使用java.lang.reflect.Proxy和java.beans.Introspector )支
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException java.lang.NoClassDefFoundError: org/apache/commons/...
01.JEPLUS新特性(系统功能).mp4 02.JEPLUS新特性(数据源讲解).mp4 ...19.JEPLUS数据库操作DynaBean.mp4 20.Excel导入技巧.mp4 21.定时任务、流程事件灵活运用.mp4 22.对接第三方数据库使用案例.mp4
数据很复杂时,JavaScript程序员喜欢把他们作为json串进行处理,后台收到后需要对json字符串进行解析,幸好有JSON-lib,这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。
在java中使用json需要引入以下六个jar包,分别为: commons-lang-2.4.jar commons-collections-3.2.1.jar commons-beanutils-1.8.3.jar json-lib-2.4-jdk15.jar ezmorph-1.0.6.jar commons-logging-1.1.3.jar ...
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException java.lang.NoClassDefFoundError: org/apache/commons/lang/...
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean commons-collections-3.2.2.jar 不加这个包 java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap commons...
java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean commons-collections.jar 不加这个包 java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap commons-...
commons-beanutils-1.8.0.jar org/apache/commons/beanutils/DynaBean commons-collections.jar org/apache/commons/collections/map/ListOrderedMap commons-lang-2.4.jar org/apache/commons/lang/exception/...
SwingController 是 Swing/AWT 应用程序的 MVC 框架,支持拦截过滤器、Commander、带有组件注释的数据绑定、Jakarta DynaBean 等。
hbase-sql v0.1.0 2013-1-9 Automatically exported from 通过sql来查询hbase上的数据 如何简化从hbase中查询数据 ... sql语法节点(对象) -> scan -> hbase -> ResultScanner -> List<DynaBean> 例如一个简单的s