设为首页 收藏本站
查看: 807|回复: 0

[经验分享] apache-commons-beanutils的基本使用操作

[复制链接]

尚未签到

发表于 2017-1-6 10:55:06 | 显示全部楼层 |阅读模式
  针对于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;
}
}

 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-324629-1-1.html 上篇帖子: Apache FtpServer 数据库管理用户实现 下篇帖子: 【转】apache压测命令ab
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表