zoukankan      html  css  js  c++  java
  • JavaWeb基础—JavaBean

    一、什么是JavaBean

      一个遵循一定规范的普通的Java类

      百度的JavaBean规范:
        (1)JavaBean 类必须是一个公共类,并将其访问属性设置为 public ,
        如: public class user{......}
        (2)JavaBean 类必须有一个空的构造函数
        类中必须有一个不带参数的公用构造器
        (3)一个javaBean类不应有公共实例变量,类变量都为private
        如: private int id;
        (4)属性应该通过一组存取方法(getXxx 和 setXxx)来访问,
        一般是IDE(Eclipse、JBuilder) 为属性生成getter/setter 方法

        自己的理解:

           必须要为成员提供set/get方法(两者提供一种也是可以的,称为只读或者只写属性,例如提供一些计算的方法,结果只能读取,不能修改)
          必须要有默认的无参构造器。
          只有set/get方法,则属性名称就是set/get方法去除set/get后首字母小写了!
          boolean类型读方法可以是is开头或者get开头

          (测试的时候如有必要,可重写toString()方法)

    二、为什么要有JavaBean

      为了和 jsp 页面传递数据简化交互过程而产生的,(封装数据、传递数据)

    三、如何使用JavaBean

      三个JSP标签:

        <jsp:userBean>:使用范例:

            <jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>

              其中id对JavaBean实例对象名称,class为类完整类名,scope默认值为page,在jsp页面中使用此标签后即可直接使用此对象

        <jsp:setProperty>:例如两种格式,对属性的操作

            <jsp:setProperty name="beanName" property="propertyName" value="string字符串"/>

              <jsp:setProperty name="beanName" property="propertyName" value="<%= expression %>" />

            其中第一种只能用于字符串类型,复合类型应使用第二种,如:value="<%=new Date()%>"

        <jsp:getProperty>

            <jsp:getProperty name="beanInstanceName" property="PropertyName" />

    四、工具类BeanUtils的使用

      此工具主要是为了方便的操作JavaBean

      一般的用法主要体现在:

               1)beanUtils 可以便于对javaBean的属性进行赋值。

            2)beanUtils 可以便于对javaBean的对象进行赋值。

            3)beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中

      这是Apache的开源项目,使用的前提是导包

          commons-beanutils-1.9.2.jar

          commons-logging.jar (依赖包)

        常用方法:

    • BeanUtils.setProperty(bean, name, value);其中bean是指你将要设置的对象,name指的是将要设置的属性(写成”属性名”),value(从配置文件中读取到到的字符串值)
    • BeanUtils。copyProperties(bean, name, value),和上面的方法是完全一样的。使用哪个都可以
    • ConvertUtils.register(Converter converter , ..),当需要将String数据转换成引用数据类型(自定义数据类型时),需要使用此方法实现转换。
    • BeanUtils.populate(bean,Map),其中Map中的key必须与目标对象中的属性名相同,否则不能实现拷贝。
    • BeanUtils.copyProperties(newObject,oldObject),实现对象的拷贝

    介绍一个小小的封装:将map数据封装到bean中:

      

        public static <T> T toBean(Map map, Class<T> clazz) {
            try {
                //创建指定类型的JavaBean
                T bean = clazz.newInstance();
                //使用工具类进行封装
                BeanUtils.populate(bean, map);
                //把bean返回
                return bean;
            }catch(Exception e) {
                throw new RuntimeException(e);
            }
        }

    简单的应用:

    //进行表单数据的封装操作等,调用service的login()方法
            User form = CommonUtils.toBean(request.getParameterMap(), User.class);
  • 相关阅读:
    for 循环遍历字典中的键值两种方法
    python print函数之end
    python中的lambda匿名函数和reduce、filter、map函数
    python2.7 python3.3 cmd命令行 运行同一段代码内存地址为什么不一样?而用同一个解释器运行的内存地址都一样
    Eclipse快捷键
    Sass基础(二)
    Sass基础(一)
    浅谈JavaScript原型
    浅谈Javascript闭包
    Bootstrap学习笔记(四)
  • 原文地址:https://www.cnblogs.com/jiangbei/p/6688510.html
Copyright © 2011-2022 走看看