• BeanUtils简化数据封装


    BeanUtils主要用来封装JavaBean的。

    1.什么是JavaBean

    JavaBean指的是标准的类。

    要求:

    1. 类必须被public修饰
    2. 必须提供空参的构造器
    3. 成员变量必须使用private修饰
    4. 提供公共setter和getter方法

    2.首先要知道成员变量和属性的区别

    成员变量就不用说了。

    属性其实和成员变量是不一样的。

    一个类如果有一个成员变量String name,有一个getter方法。

    这个方法叫getName()。

    但是方法名可以该的,例如改为getApple()。

    那么apple就是属性。

    3.几个常用的方法

    1. setProperty()
    2. getProperty()
    3. populate(Object obj , Map map):将map集合的键值对信息,封装到对应的JavaBean对象中

    4.示例

          //1.设置编码
            req.setCharacterEncoding("utf-8");
           /* //2.获取请求参数
            String username = req.getParameter("username");
            String password = req.getParameter("password");
            //3.封装user对象
            User loginUser = new User();
            loginUser.setUsername(username);
            loginUser.setPassword(password);*/
            //2.获取所有请求参数
            Map<String, String[]> map = req.getParameterMap();
            //3.创建User对象
            User loginUser = new User();
            //3.2使用BeanUtils封装
            try {
                BeanUtils.populate(loginUser,map);
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }

    以下转自:https://www.cnblogs.com/java-zmj/p/7879023.html

    一、BeanUtils工具类的使用

      1、首先导入BeanUtils工具类的jar包

            commons-beanutils-1.8.0.jar

            commons-logging-1.1.1.jar

       2、setPropertity(Object bean,String name,Object value)方法

          作用:为实体类bean的name属性设置属性值value(属性值为Object类型,可以以其他类型的对象为值)

      3、populate(Object bean,Map properties)方法

          作用:将map中的键值对,赋值给实体类bean的对应属性

             populate封装对象时,实际上是调用了该对象所属类的set方法,因此页面表单内元素的name属性值一定要与实体类中的属性名一致,

             也就是与set方法中去掉set,并将剩下字符串的首字母小写的到的字符串一致

    二、自定义类封装表单数据

      步骤:

        1、通过request.getParameterMap()方法,获取存储表单数据的map

        2、通过BeanUtils工具类的populate(t,map)方法,给实体类对象赋值

        3、返回实体类对象

    代码:

    public class WEBUtils {
          public static <T>T populateObject(HttpServletRequest request,T t){
              Map<String, String[]> map = request.getParameterMap();
              System.out.println(map);
              try {
                  BeanUtils.populate(t, map);
              } catch (Exception e) {
                  e.printStackTrace();
              }
             return t;
         }
     }

     注意:为了使自定义的工具类适用于所有实体类,我们将方法的参数设置为泛型,根据调用者传递的实体类对象和请求参数封装表单数据

  • 相关阅读:
    java-Date、String、Calendar转化
    java -日期
    eclipse安装ADT
    Echarts-axislabel文字过长导致显示不全或重叠
    Echarts-柱状图柱图宽度设置
    Echarts-画叠加柱状图,双折线图
    Echarts-画堆积柱状图,折线图
    Echarts-画柱状,折线图
    windows系统激活-使用微软官方公布的kms client setup key安装或安装后使用slmgr导入
    Office 2013 Pro Plus Vol激活
  • 原文地址:https://www.cnblogs.com/chichung/p/10321294.html
Copyright © 2020-2023  润新知