`
tiandirensoon
  • 浏览: 598191 次
文章分类
社区版块
存档分类
最新评论

用DynaBean减除不必要的VO和FormBean

 
阅读更多
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);

分享到:
评论

相关推荐

    commons-beanutils-1.9.1解析javaBean方式

    Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的。无论谁的项目,始终一天都会用得上它。我算是后知后觉了,第一回看到它的...4.5 动态Bean 见用DynaBean减除不必要的VO和FormBean

    Dyna Bean的使用

    本文属于作者原创,属于apache Dany Bean 方面入门的文章.

    使用MINA进行UDP通信实现数据导入

    有丰富的MINA通信软件开发经验,现在已经有成熟的底层框架(结合了反射、DynaBean、Spring等多种技术),可以实现程序自动对上位机和下位机之间的通信协议进行解析,并在国网公司智能电网的大型项目中使用。...

    json-jar包-2017

    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解析包jar

    Java的Json串解析包,提供给有需要的同学。

    JSON需要的jar包

    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.2-jdk15.jar所要用到的jar包

    json-lib-2.2.3-jdk15.jar commons-beanutils-1.7.0.jar commons-httpclient-3.1.jar ...要在java里使用json用到的jar包怎么导入?把包粘贴到WebRootWEB-INFlib目录下就行了 不用自己单独建立libs目录

    java8stream源码-coala-binder:代理的通用本体抽象层——一种上下文绑定器,用于跨AOSE/MAS和M&S/ABM重用异构

    java8流源码可乐 代理的通用本体抽象层——一种上下文绑定器,用于跨 AOSE/MAS 和 M&S/ABM 重用异构代理代码 常见的 具有异步回调的函数式风格:和 ...API(使用java.lang.reflect.Proxy和java.beans.Introspector )支

    使用json所要用到的jar包

    java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException java.lang.NoClassDefFoundError: org/apache/commons/...

    JEPLUS功能新特性.rar

    01.JEPLUS新特性(系统功能).mp4 02.JEPLUS新特性(数据源讲解).mp4 ...19.JEPLUS数据库操作DynaBean.mp4 20.Excel导入技巧.mp4 21.定时任务、流程事件灵活运用.mp4 22.对接第三方数据库使用案例.mp4

    xmltojson有效的方法

    数据很复杂时,JavaScript程序员喜欢把他们作为json串进行处理,后台收到后需要对json字符串进行解析,幸好有JSON-lib,这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。

    java使用json的必备7个jar包

    在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 ...

    json所有的jar包下载

    java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException java.lang.NoClassDefFoundError: org/apache/commons/lang/...

    json所需JAR包合集

    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--json解析包

    java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean commons-collections.jar 不加这个包 java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap commons-...

    Json与java对象转换所需架包

    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-开源

    SwingController 是 Swing/AWT 应用程序的 MVC 框架,支持拦截过滤器、Commander、带有组件注释的数据绑定、Jakarta DynaBean 等。

    hbase-sql:通过sql来查询hbase上的数据

    hbase-sql v0.1.0 2013-1-9 Automatically exported from 通过sql来查询hbase上的数据 如何简化从hbase中查询数据 ... sql语法节点(对象) -&gt; scan -&gt; hbase -&gt; ResultScanner -&gt; List&lt;DynaBean&gt; 例如一个简单的s

Global site tag (gtag.js) - Google Analytics