针对于servlet+jsp的web项目的话,我们在将页面上传过来的值,在传入对象中去的时候,会很麻烦,要一个一个的set进去,而且还要注意格式的转换,下面apache-commons-beanutils 就可以很好的解决这个问题。
bean类:
import java.util.Date;
import java.util.Set;
public class Article {
private int id;
private String title;//标题
private String content;//内容
private String source;//来源
private String author; //作者
private String keyword; //关键字
private String intro; //简介
private String type; //分类
private boolean recommend; //是否推荐阅读
private boolean headline; //是否作为首页头条
private int leaveNumber; //留言数
private int clickNumber; //点击量
private Set<Channel> channels; //所属频道
private int topicId; //文章所属的主题,如果不属于某个主题,则此值为0
private Date createTime; //创建时间
private Date updateTime; //更新时间
private Date deployTime; //发布时间
private int adminId; //本篇文章是由哪个管理员创建的
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Date getDeployTime() {
return deployTime;
}
public void setDeployTime(Date deployTime) {
this.deployTime = deployTime;
}
public String getKeyword() {
return keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword;
}
public String getIntro() {
return intro;
}
public void setIntro(String intro) {
this.intro = intro;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public int getLeaveNumber() {
return leaveNumber;
}
public void setLeaveNumber(int leaveNumber) {
this.leaveNumber = leaveNumber;
}
public int getClickNumber() {
return clickNumber;
}
public void setClickNumber(int clickNumber) {
this.clickNumber = clickNumber;
}
public Set<Channel> getChannels() {
return channels;
}
public void setChannels(Set<Channel> channels) {
this.channels = channels;
}
public int getAdminId() {
return adminId;
}
public void setAdminId(int adminId) {
this.adminId = adminId;
}
public int getTopicId() {
return topicId;
}
public void setTopicId(int topicId) {
this.topicId = topicId;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public boolean isRecommend() {
return recommend;
}
public void setRecommend(boolean recommend) {
this.recommend = recommend;
}
public boolean isHeadline() {
return headline;
}
public void setHeadline(boolean headline) {
this.headline = headline;
}
}
2 BeanUtilstest写的测试类:
import java.util.Date;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.junit.Test;
import junit.framework.TestCase;
public class BeanUtilstest extends TestCase{
public void testBeanUtils01() throws Exception
{
Article art=new Article();
BeanUtils.copyProperty(art, "title", "标题");
System.out.println(art.getTitle());
}
public void testBeanUtils02() throws Exception
{
Article art=new Article();
BeanUtils.copyProperty(art, "leaveNumber", "22");
System.out.println(art.getLeaveNumber());
}
public void testBeanUtils03() throws Exception
{
Article art=new Article();
BeanUtils.copyProperty(art, "recommend", "true");
System.out.println(art.isRecommend());
}
public void testBeanUtils04() throws Exception
{
Article art=new Article();
//注册你自定义的时间格式转换器
ConvertUtils.register(new DateConverter(), Date.class);
BeanUtils.copyProperty(art, "createTime", "2010-09-11");
//这里打印时间的 则会报java.lang.IllegalArgumentException: argument type mismatch错误
//各个国家的时间格式不一样,所以apache无法去规范规范每个国家的日期格式,这个日期的话 你就只能自己去定义
//自己去定义一个时间转换器, 很简单 就是去实现一个Converter接口
System.out.println(art.getCreateTime());
}
}
3 在处理时间格式上 DateConverter.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.beanutils.Converter;
public class DateConverter implements Converter {
private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
/**
* 要将字符串的value转换为java.util.Date类型的值
* targetClass 第一个参数 是你的目标类型
* value 要转换的值,
* Object 把要转回的值,返回出去就ok了
*/
public Object convert(Class targetClass, Object value) {
if (targetClass != Date.class) {
return null;
}
try {
if (value instanceof String) {
String v = (String) value;
return format.parse(v);
}
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
分享到:
相关推荐
解决办法是把commons-beanutils中的org/apache/commons/collections删除,这里上传一个改好可以直接使用的。
在给定的压缩包文件中,包含了两个版本的Apache Commons BeanUtils库:`commons-beanutils-1.8.0`和`commons-beanutils-1.8.3`。 Apache Commons BeanUtils的核心功能包括: 1. **属性访问**:BeanUtils提供了一...
Apache Commons BeanUtils是Apache软件基金会的一个开源项目,它提供了一组实用工具类,用于简化JavaBean对象的操作。这个库的核心是`org.apache.commons.beanutils`包,其中包含了大量的辅助方法,使得开发者可以...
在本文中,我们将深入探讨`commons-beanutils-1.9.4`这个版本,了解其核心功能、使用场景以及如何在项目中集成和应用。 Apache Commons BeanUtils库的主要目标是简化JavaBean对象的属性访问。它通过提供一系列静态...
本人曾经花费很多积分在各处下载的jar包,现将所用过得常用jar包打包下载...axis.jar,poi-3.17.jar,mysql-connector-java-5.0.4-bin.jar,java.util学习包,commons-beanutils与commons-logging,apache-cxf-3.2.1 包
httpcomponents-client source ,Document( commons-beanutils commons-io commons-fileupload commons-lang,commons-math,commons-validator,commons-dbutils,commons-dbcp,commons-configuration)
commons-beanutils-1.8.0 commons-codec commons-collections commons-dbcp commons-dbutils commons-fileupload commons-io commons-lang commons-lang3 commons-logging commons-pool commons-validator
Apache Commons 是一个由 Apache 软件基金会维护的开源项目集合,它提供了许多实用的 Java 类库,旨在简化常见的编程任务。这些库包含了各种各样的功能,从字符串处理到数学运算,再到数据库连接和文件上传等。以下...
1. **Apache Commons BeanUtils** - `commons-beanutils-1.9.3.jar` Apache Commons BeanUtils库是用于处理JavaBeans的工具类库。它提供了一种简单的方式来操纵JavaBean属性,无需直接调用getter和setter方法。这个...
配置服务端所需要的jar文件,包括commons-logging commons-beanutils commons-lang ezmorph json-lib-2.4-jdk15 commons-collections-3.2.1。
`commons-beanutils-1.9.3.jar`是这个库的核心组件,包含了BeanUtils的所有功能。 `commons-beanutils-1.9.3-sources.jar`则是源代码包,它包含了BeanUtils库的完整源代码,这对于开发者进行调试、学习和自定义扩展...
包括apache-commons的各种jar包及其源码:commons-beanutils-1.8.0,commons-codec-1.4,commons-collections-3.2.1,commons-dbutils-1.3,commons-dbcp-1.4,commons-fileupload-1.2.1,commons-lang-2.5, ...
commons-beanutils-1.8.3-bin.zip commons-betwixt-0.8.zip commons-chain-1.2-bin.zip commons-cli-1.2-bin.zip commons-codec-1.7-bin.zip commons-collections-3.2.1-bin.zip commons-compress-1.4.1-bin.zip ...
此为BeanUtils的实例。其中apache的包有一个小的BUG已在其中说明。
Apache Commons是一个非常有用的工具包,解决各种实际的通用问题。(附件中提供了该工具包的jar包,及源文件以供研究) BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 ...
commons-beanutils, Apache Commons Beanutils的镜像 Apache Commons BeanUtils Apache Commons BeanUtils提供了一个 easy-to-use,但它围绕反射。文档更多信息可以在公共BeanUtils主页上找到。 可以浏览 JavaDoc插
总的来说,`commons-beanutils-1.9.3.jar`是一个强大的工具,对于任何涉及大量JavaBean操作的Java项目来说都是必不可少的。通过熟练掌握和应用这个库,开发者可以更加高效地处理对象属性,实现更灵活的数据操作。
总的来说,`commons-beanutils-1.9.1.jar`和`commons-logging-1.1.3.jar`是Java开发中的两个重要工具,它们简化了JavaBeans的操作,并提供了灵活的日志机制。这两个库的结合使用,体现了Java设计原则中的“依赖倒置...
在这个"commons-beanutils-1.9.4.jar.zip"压缩包中,包含的核心文件是"commons-beanutils-1.9.4.jar",这是Apache Commons BeanUtils库的1.9.4版本。 Apache Commons BeanUtils的主要功能和知识点包括: 1. **属性...