JavaWeb -- 内省—beanutils工具包 的使用
- package com.kevin;
- import static org.junit.Assert.*;
- import java.lang.reflect.InvocationTargetException;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Map;
- import org.apache.commons.beanutils.BeanUtils;
- import org.apache.commons.beanutils.ConversionException;
- import org.apache.commons.beanutils.ConvertUtils;
- import org.apache.commons.beanutils.Converter;
- import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
- import org.junit.Test;
- public class BeanDemo1 {
- @Test
- public void test1() throws IllegalAccessException, InvocationTargetException
- {
- Person p1 = new Person("kevin");
- System.out.println(p1.getName());
- BeanUtils.setProperty(p1, "name", "xiang");
- System.out.println(p1.getName());
- }
- @Test
- public void test2() throws IllegalAccessException, InvocationTargetException
- {
- String name = "xiangjie";
- String age = "23";
- String birthday = "1980-09-09";
- //自己注册日期转换器:String---> Date,实际开发可以用包里实现好的。
- ConvertUtils.register(new Converter() {
- @Override
- public Object convert(Class type, Object value) {
- if(value == null)
- {
- return null;
- }
- if( !(value instanceof String) )
- {
- throw new ConversionException("只支持String类型的转换");
- }
- String str = (String) value;
- if( str.trim().equals("") )
- {
- return null;
- }
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
- try {
- return df.parse(str);
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- throw new RuntimeException(e);
- }
- }
- }, Date.class);
- Person p2 = new Person();
- BeanUtils.setProperty(p2, "name", name);
- BeanUtils.setProperty(p2, "age", age);
- BeanUtils.setProperty(p2, "birthday", birthday);
- System.out.println(p2.getName());
- System.out.println(p2.getAge());
- System.out.println(p2.getBirthday());
- }
- @Test
- public void test3() throws IllegalAccessException, InvocationTargetException
- {
- String name = "xiangjie";
- String age = "23";
- String birthday = "1980-09-09";
- //用官方实现的包, 但是有问题
- ConvertUtils.register(new DateLocaleConverter(), Date.class);
- Person p2 = new Person();
- BeanUtils.setProperty(p2, "name", name);
- BeanUtils.setProperty(p2, "age", age);
- BeanUtils.setProperty(p2, "birthday", birthday);
- System.out.println(p2.getName());
- System.out.println(p2.getAge());
- System.out.println(p2.getBirthday().toString());
- }
- @Test
- public void test4() throws IllegalAccessException, InvocationTargetException
- {
- Map map = new HashMap();
- map.put("name", "aaa");
- map.put("age", "12");
- //填充,如果包含有Date这种类型的数据,一样要注册转换器
- Person bean = new Person();
- BeanUtils.populate(bean, map);
- System.out.println(bean.getName());
- System.out.println(bean.getAge());
- }
- }
JavaWeb -- 内省—beanutils工具包 的使用的更多相关文章
- 内省—beanutils工具包
Apache组织开发了一套用于操作JavaBean的API,这套API考虑到了很多实际开发中的应用场景,因此在实际开发中很多程序员使用这套API操作JavaBean,以简化程序代码的编写. BeanU ...
- 内省、JavaBean、PropertyDescriptor类、Introspector类、BeanUtils工具包、注解、Rentention、Target、注解的基本属性和高级属性
本文转载自:http://blog.sina.com.cn/s/blog_5d65a16901011kom.html 关键字:内省.JavaBean.PropertyDescriptor类.Int ...
- java 内省综合案例和Beanutils工具包
演示用eclipse自动生成 ReflectPoint类的setter和getter方法. 直接new一个PropertyDescriptor对象的方式来让大家了解JavaBean API的价值,先用 ...
- 32_使用BeanUtils工具包操作JavaBean
由于对属性设置值和得到值的需求很多,使用频率很高,所以有一些开源勇士 不满足于JavaBean API 中IntroSpector来操作bean, 写出来了通用的BeanUtils工具,来进一步简 ...
- Commons BeanUtils工具包
简介: BeanUtils工具包是由Apache公司所开发,提供对Java反射和自省API的包装.其主要目的是利用反射机制对JavaBean的属性进行处理. 我们知道,一个JavaBean通常包含了大 ...
- javaweb学习总结五(内省、beanUtils工具包)
一:内省的概念 1:内省是反射的一种特例,由于在反射中频繁的操作javabean,所以为了方便反射 javabean,sun公司开发出一套API提高效率. 2:javaBean,就是用来封装客户端请求 ...
- JavaWeb 之 BeanUtils 工具类
在上一个用户登录案例中,当从浏览器接收参数后,还需要创建 JavaBean 类,对其的属性每一项赋值,如果属性少,可以手动完成,但是当属性非常多,这时就发现非常不方便,在这里提供一个可以封装 Java ...
- JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用
Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由 ...
- javase(14)_java基础增强
一.Eclipse的使用 1.在eclipse下Java程序的编写和run as,debug as,及java运行环境的配置. 2.快捷键的配置,常用快捷键: •内容提示:Alt + / •快速修复: ...
随机推荐
- php后门管理工具weevely
weevely是一款php后门管理工具,使用http头进行指令传输,功能强大.不过只支持php. weevely生成的服务器端php代码是经过了base64编码的,所以可以骗过主流的杀毒软件和IDS, ...
- 《从零开始学Swift》学习笔记(Day 37)——默认构造函数
原创文章,欢迎转载.转载请注明:关东升的博客 结构体和类的实例在构造过程中会调用一种特殊的init方法,称为构造函数.构造函数没有返回值,可以重载.在多个构造函数重载的情况下,运行环境可以根据它的外部 ...
- 关东升的《从零开始学Swift》即将出版
大家好: 苹果2015WWDC大会发布了Swift2.0,它较之前的版本Swift1.x有很大的变化,所以我即将出版<从零开始学Swift> <从零开始学Swift>将在< ...
- Jquery来对form表单提交(mvc方案)
来自:http://www.cnblogs.com/lmfeng/archive/2011/06/18/2084325.html 我先说明一下,这是asp.net mvc 里面的用法, Jquery来 ...
- 使用MyBatis_Generator工具jar包自动化生成Dto、Dao、Mapping 文件
由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类.Dao接口类甚至Mappi ...
- Storm 提交任务过程详解 (不对地方麻烦指正)
1.使用的是Storm中自带的一个测试jar包 提交下这任务到storm中去 storm jar /usr/local/app/storm/examples/storm-starter/storm-s ...
- Bean\Entity\Model\POJO\Dto\EJB简单解析
一.Bean 对于Bean而言,只要是Java的类的就可以称为一个Bean, 更用在Spring上,被Spring管理的对象就可以将其称作为Bean. 它不仅仅可以包括对象的属性以及get,set方法 ...
- 接口测试工具 — postman(get请求)
一.Postman说明 Postman是一种网页调试与发送网页http请求的chrome插件.我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口. 二.postman安装(略) 三 ...
- 面试10大算法汇总+常见题目解答(Java)
原文地址:http://www.lilongdream.com/2014/04/10/94.html(为转载+整理) 以下从Java的角度总结了面试常见的算法和数据结构:字符串,链表,树,图,排序,递 ...
- Oracle学习笔记—oracle体系架构及状态(nomount、mount和open)简介
oracle体系架构简介 先来简要了解一下Oracle数据库体系架构以便于后面深入理解,Oracle Server主要由实例(instance)和数据库(database)组成.实例(instance ...