• EL表达式和JSTL(二)——BeanUtils工具


    BeanUtils工具

      大对数人习惯使用JavaBean的get和set方法来获取和设置JavaBean的属性,但是在Java EE编程的过程中,会经常从配置文件中读取数据,但是从配置文件中读取的数据都是String类型,但是程序并不是只有一种String类型,还有一些自定义的类型,因此,我们将字符串转为特定的数据类型,方法有两种:

      1.首先,判断需要的数据类型,然后对字符串调用相关的方法,将其转换为我们需要的数据类型。

      2.使用BeanUtils工具;

      第一种方法太过繁琐,使用第二种方法只需使用其中两个方法就,即可。

    BeanUtils工具解决的主要问题:

      把对象的属性数据封装到对象中。

    BeanUtils工具使用需要的包:

      1.commons-beanutils-1.9.2.jar;

      2.commons-logging-1.2.jar;

    BeanUtils类发常用方法:

      static void populate(Object bean,Map<String,?exteds Object>properties):根据指定的名称/值对为相应的JavaBean属性设置属性值。

      static void setProperty(Object bean,String name,Object value): 设置指定的属性,传入的类型要求能转换为相应的类型

      static String getProperty(Object bean,String name):返回指定Bean指定属性的值,返回类型是String类型。

    BeanUtils的实例:

      设置一个Person类:

    package cn.it.gan.BeanUtilsDemo;
    
    public class Person {
        private String naem;
        private int age;
    
        public Person() {
    
        }
    
        public Person(String naem, int age) {
            super();
            this.naem = naem;
            this.age = age;
        }
    
        public String getNaem() {
            return naem;
        }
    
        public void setNaem(String naem) {
            this.naem = naem;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
    }

      设置一个BeanUtilsDemo类测试BeanUtils工具

    package cn.it.gan.BeanUtilsDemo;
    
    import java.lang.reflect.InvocationTargetException;
    import java.util.HashMap;
    import java.util.Map;
    
    import org.apache.commons.beanutils.BeanUtils;
    
    public class BeanUtilsDemo {
        public static void main(String[] args) throws Exception, InvocationTargetException {
            Person p = new Person();
            // 使用BeanUtils来为p赋值
            BeanUtils.setProperty(p, "naem", "Jack");
            BeanUtils.setProperty(p, "age", 29);
            // 使用BeanUtils工具获得p的值
            String name = BeanUtils.getProperty(p, "naem");
            String age = BeanUtils.getProperty(p, "age");
            System.out.println("姓名为:" + name + ",  年龄为:" + age);
    
            // 创建Map集合,用来存放属性
            Map map = new HashMap<String, Object>();
            map.put("naem", "张三");
            map.put("age", 30);
            // 使用populate()方法来设置属性
            BeanUtils.populate(p, map);
            System.out.println("姓名为:" + p.getNaem() + ",  年龄为:" + p.getAge());
    
        }
    
    }

      运行结果:

              

    注意:使用setProperty给赋值的话,少赋值一个属性的话是不会报错的,只会是null,多给一个没有的属性赋值的话也不会报错,只是不会赋值进去而已;

      使用map集合赋值时,要求Map的Key和JavaBean的属性名时一致的。

  • 相关阅读:
    Spring Cloud Consul Config 知识点
    RabbitMQ 的 docker 镜像使用
    Spring Cloud Config 知识点
    漫画:什么是服务熔断?
    Flux 和 Mono 的区别
    同时引入依赖:spring-cloud-starter-gateway 和 spring-boot-starter-web,报错
    Feign 报错:The bean 'service-producer.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.
    Feign和OpenFeign的区别
    Maven 报错:Compilation of Maven projects is supported only if external build is started from an IDE.
    使用 application.properties 中配置的属性,举例:@Value("${server.port}")
  • 原文地址:https://www.cnblogs.com/zhilili/p/10888646.html
Copyright © 2020-2023  润新知