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 + / •快速修复: ...
随机推荐
- 在看lua仿单继承
--lua仿单继承 Account = { balance = } --对于成员变量,第一此访问要使用元表中的,在第一次也赋值到自己的域中了 --将不涉及到__index了 function Acco ...
- 1119 机器人走方格 V2(组合)
1119 机器人走方格 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于 ...
- 关于后台传来的json是含英文字母的string
最近帮朋友写东西,遇上一个比较坑的后台,传来的json是字符串,并且还伴有英文字符,类似 callback({xxx:xxx,xxx:xxx}),我打印了一下后台传来的数据格式,发现时string,所 ...
- Xcode生成ipa文件
想到蒲公英应用做分发测试的同学们可以用的到哈 在测试的Device中切换为IOS Device,选择当前项目修改BuildSeting 在code signing Identity中选择证书,没有测试 ...
- 基于websocket搭建简易群聊
1.前端HTML <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset=&qu ...
- 数据库之MySQL(四)
数据库中的范式: 第一范式(1NF): 数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性. 例如: userInfo: '山东省烟台市 1318162008' 依照第一范式 ...
- C# emoji 表情如何插入mssql
如何将emoji表情存入mssql 呢? 在Windows显示emoji(win7需要安装补丁) 在MAC完美支持 步骤就是将显示不出来的emoji UrlEncode=>进入MSsql 然后拿 ...
- zabbix-2.4.8-1添加nginx状态监控
前期准备:nginx在编译是必须要加如下参数: 并且要在nginx的配置文件中添加如下配置: server { listen *: default_server; server_name localh ...
- corethink功能模块探索开发(一)根据已有模块推测目录结构
corethink是opencmf的一个开源版本,如果自己要进行二次开发,开发模块等,需要在官方开一个中级会员(50大洋吧),官网的一个“一键生成demo”就能给你最基础的目录结构,从而可以在此基础上 ...
- 通过js代码来制作数据库增删改查插件
代码流程 1.订制表头:table_config 2.订制显示内容: table_config,data_list 3.加载框: 图片,position:fixed 4.-字符串格式化 ...