对于BeanUtils这个工具,我也用的不是很多,但是还是有点心得和大家分享下,呵呵~~用过spring的都知道spring的MVC框架中有一个BaseCommandController对象,利用这个对象我们就可以很方便的将从客户端传递过来的参数封装到一个JavaBean对象中去,而不需要我们request.getParameter("name");bean.setName(name);了,从而也简化了不少的工作。其实在structs中也有这样的功能的,不过它用的BeanUtils这个工具类,也就是我今天要给大家说的这个类。
commons-beanutils组件是Jakarta Commons项目组中的一个,可以到Jakarta官网上去下载。我们今天讨论的主要就是commons-beanutils中的BeanUtils这个类,这个类都是静态方法,可以很方便的操纵各个JavaBean对象,包括获取属性、设置属性等,我们以例子来进行说明。
假设有如下一个JavaBean对象:
public TestBean
{
private String stringValue;
private int intValue;
public void setStringValue(String value)
{
this.stringValue = value;
}
public String getStringValue()
{
return this.stringValue;
}
public void setIntValue(int value)
{
this.intValue = value;
}
public int getIntValue()
{
return this.intValue;
}
}
那么我们就可以使用BeanUtils来对其进行设置值和获取值了。如下:
TestBean tb = new TestBean();
BeanUtils.setProperty(tb, "stringValue", "hello world!");
BeanUtils.setProperty(tb, "intValue", 123);
通过上述的语句我们就可以给新new的对象设置两个属性了,注意其中第一个参数就是我们的属性名称,这里也是我们在使用这个工具的时候最需要注意的地方。这个属性名称就是我们的TestBean中的getXXX方法中的XXX,比如getStringValue中其属性名称就是stringValue,在使用属性名称的时候,除了XXX中的第一个字母不需要大小写之外,其他的部分是需要严格区分大小写的,这也是JavaBean的规范。这里有一点需要特别注意的就是,如果属性名称中第一个单词(我们界定的)只有一个字母的话,那么其属性名称必须大写!我们可以看这样一个例子:
我们给TestBean加如下一个属性:
……
public void setTName(String name)
{
this.name = name;
}
public void getTName()
{
return this.name;
}
……
那么在使用BeanUtils进行属性赋值的时候,如果你这样写:
BeanUtils.setProperty(tb, "tName", "hello");
那么就会被抛出一个异常,表示这个属性找不到,因为按照JavaBean的规范,属性名称中如果有多个单词,则每一个单词的首字母要大写!这里BeanUtils就会认为属性TName是两个单词,分别是T和Name,所以取属性的时候第一个字母必须要大写,所以其属性就应该是;TName,那么我们就应该如下写操作语句:
BeanUtils.setProperty(tb, "TName", "hello");
这样写才是正确的。那么我们来看在B/S结构的程序中,如何将表单域的参数(不一定是表单域,是参数都可以)转换成一个JavaBean对象,我们以上面的Bean为例子,我们在页面上进行编写如下:
……
<form name="form1" action="/getbean.jsp">
字符串值:<input type="text" name="stringValue" /><br/>
数字值:<input type="text" name="intValue" /><br/>
</form>
……
然后我们在服务器端进行编写如下代码来获取参数,并组装成一个TestBean对象,代码如下:
……
TestBean tb = new TestBean();
BeanUtils.populate(tb, request.getParameterMap());
// 使用BeanUtils工具类来获取对象的属性
System.out.println(BeanUtils.getProperty("stringValue"));
System.out.print(BeanUtils.getProperty("intValue"));
// 直接获取对象的属性
System.out.println(tb.getStringValue());
System.out.println(tb.getIntValue());
……
我们注意到,在表单区域中编写的几个输入框的名称(红色标识的部分)就是我们的TestBean对象的属性名称,然后服务器端的代码中,我们首先使用request.getParameterMap()来获取提交的参数,并转换成一个map对象存储(键是参数名称,值是提交的值),然后我们使用BeanUtils的populate方法来进行赋值。通过打印后,我们可以看到我们输入的值被成功的设置到对象中去了,可以看到简单的两行代码就可以搞定参数到对象的数据绑定工作,如果一个对象有十几个甚至几十个参数属性的话,那么这样的方式将是非常简便的,至少可以少写十几行甚至几十行的代码。
可以看到利用BeanUtils这个工具类可以很方便的进行JavaBean的属性操作和request的参数到JavaBean的属性绑定操作。其他的功能大家就可以参看它的API文档了~~~~
分享到:
相关推荐
BeanUtil框架是一个在Java开发中常用的工具库,主要用于对象属性的获取、设置、拷贝以及类型转换等操作。它的设计目标是简化Java Bean的操作,提高代码的可读性和可维护性。这个“BeanUtil框架完整包”包含了...
BeanUtil是一个常用的Java工具库,主要用于对象与数据库之间的数据转换,简化了数据库操作中的数据绑定过程。这个工具库使得开发者可以更加便捷地处理Java Bean和SQL查询结果之间的映射,提高了开发效率。在Java开发...
《BeanUtil_Jar包:JavaBean操作神器》 在Java编程世界中,BeanUtils库扮演着重要的角色,它为开发者提供了便捷的操作JavaBean的工具类。这个“BeanUtil_Jar包”正是这样一个实用的工具集,它包含了丰富的功能,...
BEANutil工具类,可获取生日,简单的几行代码,给需要的你。BEANutil工具类,可获取生日,简单的几行代码,给需要的你。
《BeanUtil:Apache提供的高效Java反射工具包》 在Java编程中,BeanUtil是一个非常重要的工具包,尤其在处理对象的属性操作时,它扮演着不可或缺的角色。BeanUtil源自著名的开源组织Apache,是其 Commons BeanUtils...
BeanUtil属性拷贝工具类,支持基本的javabean属性拷贝,通过java反射和泛型编程实现了list属性拷贝
BeanUtil 主要用于实体Bean和Map之间的互转,使用方便,是一个不可多得的工具类哦
《BeanUtil1.8源码与jar包解析》 BeanUtil是Apache Commons项目中的一个工具类库,主要用于处理Java Bean的操作,提供了一系列便捷的方法来简化Java Bean的属性操作。在这个"BeanUtil1.8 SRC 源码和 jar包"中,包含...
BeanUtil.java
本文将深入探讨BeanUtil工具类的工作原理以及如何在Servlet中使用它。 首先,让我们理解一下JavaBean的概念。JavaBean是一种遵循特定规范的Java类,主要用于封装数据。它通常具有公有构造器、公有getter和setter...
BeanUtil需要的jar包和源码文件,commons-beanutils-1.8.0.jar,commons-beanutils-1.8.0-javadoc.jar,commons-beanutils-1.8.0-sources.jar,commons-beanutils-bean-collections-1.8.0.jar,commons-beanutils-...
在给定的标题"BeanUtil_MYSQL_mybaatis_"中,我们可以推断这是一个关于MyBatis和MySQL结合使用的工具类,可能用于自动根据实体Bean生成SQL语句。描述进一步明确了这个工具的功能,包括自动生成创建表的DDL(Data ...
beanutil的的jar包 大家顶啦
修改内容: 1.org.apache.commons.beanutils.converters包下增加了UtilDateConverter类 2.修改了org.apache.commons.beanutils.converters包下的StringConverter类 3.ConvertUtilsBean类中的public void ...
这个"commons-beanutil-1.7.0-src"压缩包包含了BeanUtils库的源代码,版本号为1.7.0,是开发者理解和自定义此库功能的重要资源。以下是关于Apache Commons BeanUtils库及其1.7.0版本的一些关键知识点: 1. **...
BeanUtil通常指的是Apache Commons BeanUtils库,这是一个实用工具类库,提供了各种方法来操作Java Bean,如属性的复制、类型转换等。在JSP项目中,BeanUtil可以帮助我们方便地处理对象之间的属性赋值,简化对象间的...
"beanutil的jar包打包" 指的是将Apache Commons BeanUtils相关的类库打包成一个或多个JAR(Java Archive)文件。BeanUtils是Java开发中常用的工具包,它提供了对Java Bean操作的各种便利方法,如属性的设置与获取,...
common-beanutil的源代码 1.8.1
beanutil_1.8.3_API
【标题】中的"dom4j jstl beanUtil log4j等jar包"涉及了四个重要的Java库,它们在开发Java应用程序,特别是Web应用时非常常见。下面将逐一详细介绍这些库的功能、用途以及如何在项目中使用它们。 1. **DOM4J**:这...