zoukankan      html  css  js  c++  java
  • 30天轻松掌握JavaWeb_使用beanutils

    导入commons-beanutils-1.8.3.jar及commons-logging-1.1.3.jar

    使用commons-beanutils-1.8.3.jar包时需要同时使用commons-logging-1.1.3.jar包,因为需要写日志。

    package com.wzh.test.beanutils;
    
    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.Assert;
    import org.junit.Test;
    
    //使用BeanUtils操作Bean属性(第三方)
    public class Demo1 {
    
        @Test
        public void test1() throws IllegalAccessException,
                InvocationTargetException {
            Person p = new Person();
            BeanUtils.setProperty(p, "name", "victor");
    
            System.out.println("name:"+p.getName());
        }
    
        @Test
        public void test2() throws IllegalAccessException,
                InvocationTargetException {
            Person p = new Person();
            // 自动将String转为int 支持8种基本数据类型
            BeanUtils.setProperty(p, "age", "23");
            // 默认不支持时间转换
            BeanUtils.setProperty(p, "Birthday", "2012-3-1");
            System.out.println("age:"+p.getAge());
            System.out.println("birthday:"+p.getBirthday());
        }
    
        @Test
        public void test3() throws IllegalAccessException,
                InvocationTargetException {
    
            // 为了让日期赋到Bean的Birthday属性上,我们给BeanUtils注册一个日期转换器
            // 方法1.
            ConvertUtils.register(new Converter() {
                @Override
                public Object convert(Class type, Object value) {
                    if (value == null)
                        return null;
    
                    if (!(value instanceof String)) {
                        System.out.println("不是日期类型");
                        throw new ConversionException("不是日期类型");
                    }
    
                    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) {
                        throw new RuntimeException(e);// 异常链不能断
                    }
                }
            }, Date.class);
    
            // ConvertUtils.register(new DateLocaleConverter(), Date.class);
            Person p = new Person();
            // 自动将String转为int 支持8种基本数据类型
    
            BeanUtils.setProperty(p, "birthday", "2012-12-12");
            System.out.println("birthday2:"+p.getBirthday());
        }
    
        @Test
        public void test4() throws IllegalAccessException,
                InvocationTargetException {
    
            Map map = new HashMap();
            map.put("name", "aa");
            map.put("birthday", "2012-1-1");
            //使用自带的转换器
            ConvertUtils.register(new DateLocaleConverter(), Date.class);
            Person p = new Person();
            // 自动将String转为int 支持8种基本数据类型
    
            BeanUtils.populate(p, map);//用Map集合中的值填充到Bean的属性
            System.out.println(p.getBirthday());
        }
    }
  • 相关阅读:
    学期总结
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言II—作业04
    C语言II—作业03
    C语言II—作业02
    C语言II博客作业01
  • 原文地址:https://www.cnblogs.com/zhuawang/p/3731156.html
Copyright © 2011-2022 走看看