EL表达式和JSTL(二)——BeanUtils工具
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类:
package cn.it.gan.BeanUtilsDemo; public class Person {
private String naem;
private int age; public Person() { } public Person(String naem, int age) {
super();
this.naem = naem;
this.age = age;
} public String getNaem() {
return naem;
} public void setNaem(String naem) {
this.naem = naem;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} }
设置一个BeanUtilsDemo类测试BeanUtils工具
package cn.it.gan.BeanUtilsDemo; import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map; import org.apache.commons.beanutils.BeanUtils; public class BeanUtilsDemo {
public static void main(String[] args) throws Exception, InvocationTargetException {
Person p = new Person();
// 使用BeanUtils来为p赋值
BeanUtils.setProperty(p, "naem", "Jack");
BeanUtils.setProperty(p, "age", 29);
// 使用BeanUtils工具获得p的值
String name = BeanUtils.getProperty(p, "naem");
String age = BeanUtils.getProperty(p, "age");
System.out.println("姓名为:" + name + ", 年龄为:" + age); // 创建Map集合,用来存放属性
Map map = new HashMap<String, Object>();
map.put("naem", "张三");
map.put("age", 30);
// 使用populate()方法来设置属性
BeanUtils.populate(p, map);
System.out.println("姓名为:" + p.getNaem() + ", 年龄为:" + p.getAge()); } }
运行结果:
注意:使用setProperty给赋值的话,少赋值一个属性的话是不会报错的,只会是null,多给一个没有的属性赋值的话也不会报错,只是不会赋值进去而已;
使用map集合赋值时,要求Map的Key和JavaBean的属性名时一致的。
最新文章
- 使用Navicat在oracle XE上新建表空间、用户及权限赋予
- JSLint检测Javascript语法规范
- 常用doc命令
- Spring初始化 Map 和 解析Json value
- 网络流(最大流) HDU 1565 方格取数(1) HDU 1569 方格取数(2)
- Linux学习 -- 服务管理
- HDFS读写程序小测试
- NSString的几个方法(rangeOfString,hasPrefix,hasSuffix,改变大小写...)
- Qt 地址薄 (一) 界面设计
- javaScript的一些奇妙动画
- JavaWeb之原生数据库连接
- python3+django2 开发易语言网络验证(中)
- Java的动态代理
- 使用JavaScript实现单向链表
- [leetcode]224. Basic Calculator
- Linux top、VIRT、RES、SHR、SWAP(S)、DATA Memory Parameters Detailed
- PHP合并数组及去重
- 异构无线网络之QOS简介
- IOS safari 浏览器 时间乱码(ios时间显示NaN) 问题解决
- java 下载网络图片
热门文章
- Vulkan 之 Layers
- c# 多张图片合成一张图片
- javascript如何获取复选框中的值?
- MySQL8.0安装caching_sha2_password问题
- Maven:java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
- LeetCode简单题汇总
- mysql+MHA高可用 (一主双从)
- Codeforces 405E DFS
- 利用京东云Serverless服务快速构建5G时代的IoT应用
- POJ 1836:Alignment