zoukankan      html  css  js  c++  java
  • BeanUtils学习总结

    一、BeanUtils介绍


    BeanUtils是apache的开发库;

    为了使用BeanUtils,需要导入

    (1)common-logging-1.1.1.jar

    (2)common-beanutils.jar

    二、BeanUtils开发


    (1)设置属性;
    (2)注册转换器;
    (3)自定义转换器;
    (4)批量设置属性;

    注意:JavaBean必须是public的,不然BeanUtils会抛异常;
    01 package org.xiazdong.beanutils;
    02  
    03 import java.text.ParseException;
    04 import java.text.SimpleDateFormat;
    05 import java.util.Date;
    06 import java.util.HashMap;
    07 import java.util.Map;
    08  
    09 import org.apache.commons.beanutils.BeanUtils;
    10 import org.apache.commons.beanutils.ConversionException;
    11 import org.apache.commons.beanutils.ConvertUtils;
    12 import org.apache.commons.beanutils.Converter;
    13 import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
    14 import org.junit.Test;
    15 import org.xiazdong.Person;
    16  
    17 public class Demo01 {
    18  
    19     // 设置属性
    20     @Test
    21     public void test1() throws Exception {
    22         Person p = new Person();
    23         BeanUtils.setProperty(p, "name", "xiazdong");
    24         BeanUtils.setProperty(p, "age", 20);
    25         System.out.println(p.getName());
    26         System.out.println(p.getAge());
    27     }
    28  
    29     // 自定义转换器
    30     @Test
    31     public void test2() throws Exception {
    32         Person p = new Person();
    33         ConvertUtils.register(new Converter() {
    34  
    35             @Override
    36             public Object convert(Class type, Object value) {
    37                 if (value == null) {
    38                     return null;
    39                 }
    40                 if (!(value instanceof String)) {
    41                     throw new ConversionException("conversion error");
    42                 }
    43                 String str = (String) value;
    44                 if (str.trim().equals("")) {
    45                     return null;
    46                 }
    47                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    48                 try {
    49                     return sdf.parse(str);
    50                 } catch (ParseException e) {
    51                     throw new RuntimeException(e);
    52                 }
    53  
    54             }
    55  
    56         }, Date.class);
    57         BeanUtils.setProperty(p, "birth", "2011-10-10");
    58         System.out.println(p.getBirth().toLocaleString());
    59     }
    60  
    61     // 使用内置的转换器
    62     @Test
    63     public void test3() throws Exception {
    64         Person p = new Person();
    65         ConvertUtils.register(new DateLocaleConverter(), Date.class);
    66         BeanUtils.setProperty(p, "birth", "2011-10-10");
    67         System.out.println(p.getBirth().toLocaleString());
    68     }
    69  
    70     // 使用内置的转换器
    71     @Test
    72     public void test4() throws Exception {
    73         Map map = new HashMap();
    74         map.put("name", "xiazdong");
    75         map.put("age", "20");
    76         map.put("birth", "2010-10-10");
    77         ConvertUtils.register(new DateLocaleConverter(), Date.class);
    78         Person p = new Person();
    79         BeanUtils.populate(p, map);
    80         System.out.println(p.getAge());
    81         System.out.println(p.getBirth());
    82     }
    83 }
    转自:http://blog.csdn.net/xiazdong/article/details/7339687
  • 相关阅读:
    菜鸟调错(四)——Spring与DWR集成,配置文件报错
    FIFO、LRU、OPT页面调度算法及样例
    JConsole的使用手册 JDK1.5(转)
    jconsole JDK1.6 使用手册 (转)
    CPU利用率与Load Average的区别?
    Load和CPU利用率是如何算出来的 (转发)
    SecureCRT 默认配置
    Java 内存区域和GC机制(转载)
    Java 线程池的原理与实现 (转)
    【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
  • 原文地址:https://www.cnblogs.com/xieyuan/p/3787246.html
Copyright © 2011-2022 走看看