zoukankan      html  css  js  c++  java
  • 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;
         }
     }

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

  • 相关阅读:
    新版眼保健操图解(转)
    新经理从IBM来
    宝宝六个月零五天,从床上摔下。。。。。
    [转] 教小朋友画画
    宝宝辅食食谱(4、5、6、7个月)
    永远的乔布斯
    北京一场大暴雨,暴出几句经典语
    [转] 想做永久夫妻就要看
    宝宝身高和体重踪迹
    go语言基础之包和自定义包与main包
  • 原文地址:https://www.cnblogs.com/chichung/p/10321294.html
Copyright © 2011-2022 走看看