populate方法的作用将map数据封装到指定的JavaBean中,一般用于将表单中的所有数据封装到JavaBean
    populate(Object obj,Map

    JavaBean其实就是一个Java的实体类(对象)

    1. package Day01_Demo.Test05;/*
    2. @create 2020--12--21--11:27
    3. */
    4. import org.apache.commons.beanutils.BeanUtils;
    5. import org.junit.Test;
    6. import javax.swing.plaf.basic.BasicScrollPaneUI;
    7. import java.lang.reflect.InvocationTargetException;
    8. import java.util.HashMap;
    9. import java.util.Map;
    10. /**
    11. * BeanUtils下的方法讲解
    12. */
    13. public class BeanUtilsDemo {
    14. //使用populate方法进行填充数据方法1
    15. @Test
    16. public void test1(){
    17. //1.模拟数据,创建map,填充所需要的数据
    18. Map<String, String[]> map = new HashMap<>();
    19. map.put("uid", new String[]{"u007"});
    20. map.put("username", new String[]{"王语嫣"});
    21. map.put("password", new String[]{"111"});
    22. //2.使用populate方法进行填充
    23. User user = new User();
    24. try {
    25. BeanUtils.populate(user, map);
    26. } catch (IllegalAccessException e) {
    27. e.printStackTrace();
    28. } catch (InvocationTargetException e) {
    29. e.printStackTrace();
    30. }
    31. //输出
    32. System.out.println(user);
    33. }
    34. //使用populate方法进行填充数据方法2
    35. @Test
    36. public void test2(){
    37. //1.模拟数据,创建map,填充所需要的数据
    38. Map<String, String[]> map = new HashMap<>();
    39. map.put("uid", new String[]{"u008"});
    40. //底层,其实就是调用了setUserName
    41. map.put("username", new String[]{"郭靖","黄蓉"});
    42. map.put("password", new String[]{"123"});
    43. map.put("hobbies", new String[]{"降龙十八掌", "碧海潮声曲", "打狗十八式"});
    44. map.put("age", new String[]{"45"});
    45. //2.使用populate方法进行填充
    46. /*
    47. 可以指定属性,统一进行填充,需要的类型是[]
    48. 如果属性不是数组,将使用map.value表示数组中的第一个数据 - 黄蓉不是第一个数据所以不见了
    49. BeanUtils支持的类型:基本类型和基本类型对应的包装类,自动将字符串转换为基本类型 - 自己做的
    50. */
    51. User user = new User();
    52. try {
    53. BeanUtils.populate(user, map);
    54. } catch (IllegalAccessException e) {
    55. e.printStackTrace();
    56. } catch (InvocationTargetException e) {
    57. e.printStackTrace();
    58. }
    59. System.out.println(user);
    60. }
    61. }