學會使用BeanUtils 來操作bean屬性

jopen 11年前發布 | 54K 次閱讀 BeanUtils Java開發

1.導入BeanUtils 的jar包

BeanUtils是第三方jar包,不是sun公司開發的jar包中的jar文件。但是在開發中我們是常使用beanutils來操作javabean。

我們要使用BeanUtils來操作bean屬性,那么就必須將其導入到開發環境中。下面先介紹如何將我們要使用的jar導入:

第一步:我們需要到http://archive.apache.org/dist/commons/beanutils/binaries/  這個網站上下載:

commons-beanutils-1.8.3-bin.tar.gz

第二步:在百度中搜索:commons-logging.jar 并下載

第三步:在MyEclipse中,在你已經建立的project工程名上右鍵鼠標,新建一個folder,取名:Lib(可以任意命名)。

第四步:將commons-beanutils-1.8.3-bin.tar.gz解壓并將其中的commons-beanutils-1.8.3.jar復制到剪貼板,然后在Lib文件夾上粘貼。同樣將:commons-logging.jar 

在Lib文件夾上粘貼。

第五步:右鍵Lib文件夾,buildPath即可,就可以看到在工程的下方已經加入到這個jar文件

 

2.使用BeanUtils來操作bean屬性

示例代碼:

public class Car {
private String name="aaa";
private int size=12;
private int people=4;
private Date date;

public Car(){

}

public Car(String name, int size, int people) {
    super();
    this.name = name;
    this.size = size;
    this.people = people;
}

public String getA(){
    return null;
}


public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getSize() {
    return size;
}
public void setSize(int size) {
    this.size = size;
}
public int getPeople() {
    return people;
}
public void setPeople(int people) {
    this.people = people;
}

public Date getDate() {
    return date;
}

public void setDate(Date date) {
    this.date = date;
}


}

a.改變某一字段的值

Car c=new Car();
BeanUtils.setProperty(c,"name","xcc");
System.out.println(c.getName());

b.BeanUtils 支持將String類型自動轉化成基本類型參數。復雜類型不支持

 Car c=new Car();
        String sname="abcd";
        String speople="12";
        String ssize="123";

        BeanUtils.setProperty(c,"name",sname);
        BeanUtils.setProperty(c,"weight",speople);//BeanUtils這個類幫助我們將String類型的參數轉化為int型 
        BeanUtils.setProperty(c,"size",ssize);
        System.out.println(c.getName());
        System.out.println(c.getPeople());
        System.out.println(c.getSize());
BeanUtills使得我們的操作bean屬性更加的方便,如當我們在處理用戶提交過來的表單時,因為提交的數據都是String類型

 

c.如果我們要將一個String類型的值 轉化成復雜類型的值,那么就要這么做:

下面我們以將一個String類型的值轉成我們想要的Date類型的值

  Car c=new Car();
        String d="1990-07-02";
        ConvertUtils.register(new Converter(){
            public Object convert(Class type, Object value) {
                if(value==null)return null;
                if(!(value instanceof String))
                    throw new ConversionException("不能轉換為String類型");
                String str=(String)value;
                //trim()忽略前導空白和尾部空白
                if(str.trim().equals(""))
                    return null;
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
                try {
                    return sdf.parse(str);
                } catch (ParseException e) {
                    throw new RuntimeException(e);
                }
            }

        },Car.class);//這是我們自己定義并實現的一個Date類型轉換器
        //ConvertUtils.register(new DateLocaleConverter(), Car.class);//new DateLocalCXonverter()是API文檔中已經被實現了的時間轉換器

        BeanUtils.setProperty(c, "date", d);
        System.out.println(c.getDate());

d.將一個map集合中的字段值一次性導入到bean屬性中

 Car c=new Car();
        Map map=new HashMap();
        map.put("name", "java");//每個字段對應的值
        map.put("people", "12");
        map.put("size", "12");

        BeanUtils.getCacheFast(map);
        System.out.println(c.getName());
        System.out.println(c.getPeople());
        System.out.println(c.getSize());


 

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!