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类:

  1. package cn.it.gan.BeanUtilsDemo;
  2.  
  3. public class Person {
  4. private String naem;
  5. private int age;
  6.  
  7. public Person() {
  8.  
  9. }
  10.  
  11. public Person(String naem, int age) {
  12. super();
  13. this.naem = naem;
  14. this.age = age;
  15. }
  16.  
  17. public String getNaem() {
  18. return naem;
  19. }
  20.  
  21. public void setNaem(String naem) {
  22. this.naem = naem;
  23. }
  24.  
  25. public int getAge() {
  26. return age;
  27. }
  28.  
  29. public void setAge(int age) {
  30. this.age = age;
  31. }
  32.  
  33. }

  设置一个BeanUtilsDemo类测试BeanUtils工具

  1. package cn.it.gan.BeanUtilsDemo;
  2.  
  3. import java.lang.reflect.InvocationTargetException;
  4. import java.util.HashMap;
  5. import java.util.Map;
  6.  
  7. import org.apache.commons.beanutils.BeanUtils;
  8.  
  9. public class BeanUtilsDemo {
  10. public static void main(String[] args) throws Exception, InvocationTargetException {
  11. Person p = new Person();
  12. // 使用BeanUtils来为p赋值
  13. BeanUtils.setProperty(p, "naem", "Jack");
  14. BeanUtils.setProperty(p, "age", 29);
  15. // 使用BeanUtils工具获得p的值
  16. String name = BeanUtils.getProperty(p, "naem");
  17. String age = BeanUtils.getProperty(p, "age");
  18. System.out.println("姓名为:" + name + ", 年龄为:" + age);
  19.  
  20. // 创建Map集合,用来存放属性
  21. Map map = new HashMap<String, Object>();
  22. map.put("naem", "张三");
  23. map.put("age", 30);
  24. // 使用populate()方法来设置属性
  25. BeanUtils.populate(p, map);
  26. System.out.println("姓名为:" + p.getNaem() + ", 年龄为:" + p.getAge());
  27.  
  28. }
  29.  
  30. }

  运行结果:

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

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

EL表达式和JSTL(二)——BeanUtils工具的更多相关文章

  1. [转]EL表达式和JSTL表达式实例

    /* **Title:EL表达式和JSTL表达式实例 **Author:Insun **Blog:http://yxmhero1989.blog.163.com/ */ 为了方便写JSP,我们引入了E ...

  2. 简述jsp之EL表达式和jstl及其使用

    Jsp的指令之include指令include指令:代表的是页面的包含. 作用:可以把一些jsp的页面包含在一起,对外展示. 页面的布局,现在已经不用了,现在都用css+div进行布局.include ...

  3. jsp EL表达式和JSTL标签if-else if-else用法

    java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法一.条件运算符 ${user.gender==?'男':'女'} 二.if() <c:if ...

  4. Javaweb学习笔记6—EL表达式与JSTL及自定义标签

    今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps: ...

  5. EL表达式、JSTL

    EL表达式 一.简介 > JSP表达式 <%= %> 用于向页面中输出一个对象.        > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段.   ...

  6. (十)EL表达式和JSTL标签快速入门

    目录 什么是 el 表达式 示例:使用EL表达式获取pageContext .request.session.application域中的数据: 示例:使用EL表达式获取Bean属性 获取当前WEB应 ...

  7. EL&Filter&Listener:EL表达式和JSTL,Servlet规范中的过滤器,Servlet规范中的监听器,观察着设计模式,监听器的使用,综合案例学生管理系统

    EL&Filter&Listener-授课 1 EL表达式和JSTL 1.1 EL表达式 1.1.1 EL表达式介绍 *** EL(Expression Language):表达式语言 ...

  8. EL表达式与JSTL

    内容包括 EL表达式 EL函数库 JSTL 核心标签库 格式化标签库 SQL标签库 XML标签库 自定义标签库 EL表达式 EL是Expression Language的是缩写,是JSP页面编写的一种 ...

  9. Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用

    我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用   Struts2标签库提供了主题.模板支持,极大地简化了视图页面的 ...

随机推荐

  1. Python 比较 相等性 真值

    1 == 操作符测试 值 的相等性: is 测试对象的一致性.注意短字符串的is相等性测试,PVM会缓存短字符串,s1 is s2 将返回true. 2 false:"", [], ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-barcode

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  3. mark LINUX_6.8 python_2.6.6 setup版本升级 python 2.7.9 安装 pip 临时使用国内镜像源库 指定模块版本 删除指定模块

    简单但却又经常需要使用  网上  贴子也很多  也经常用  所以 做个mark 吧: 1首先下载python2.7.9 源tar包 源码安装 可利用linux自带下载工具wget下载,如下所示:   ...

  4. MySQL8.0安装caching_sha2_password问题

    MySQL安装之后无法用工具连接上本地数据库 详情原因可见: https://mysqlserverteam.com/mysql-8-0-4-new-default-authentication-pl ...

  5. Java工程师面试题

    1. J2EE 是什么?它包括哪些技术?解答:从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物.适用于企业级应用的 J2E ...

  6. 7 ~ express ~ body-parser 模块的使用

    一,安装 : npm install body-parser 二,加载 : var bodyParser = require('body-parser') 三,配置 : https://github. ...

  7. 19 — node 模块化 及 CommonJS规范 — CommonJS 的由来及各组织与 JS 的关系

    ECMAScript  对于不同的环境(运行平台),设计结构,理念,使用方式大相径庭. 1,浏览器 :DOM BOM 2,NodeJS :FS,HTTP 内置模块 :  第三方模块 : 内置模块 3, ...

  8. POJ-3262 贪心的一个小技巧

    Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3204   Accepted: ...

  9. io流对数据的读写

    import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; i ...

  10. 七牛云存储javascript-sdk和java-sdk的使用

    自己做项目使用的是一台阿里云最便宜的服务器,存储空间只有40G,静态资源和动态资源都放在一起.听说七牛云存储注册认证即送10G的免费存储,想着把静态资源放在七牛云上,分担一下阿里云服务器的存储压力. ...