beanUtils的用法


舉例1:使用BeanUtils工具封裝用戶提交的數據。

 1 public static void main(String[] args)throws Exception {
 2 
 3        // 模擬用戶的輸入的數據如下
 4 
 5        String name = "XML基礎";
 6 
 7        String author = "焦寧波";
 8 
 9        String price = "99.99";
10 
11        String date = "2013-01-04";
12 
13        Book book = new Book();
14 
15        // 任務是將以上的屬性設置給指定的Book對象
16 
17        BeanUtils.setProperty(book, "name", name);
18 
19        BeanUtils.setProperty(book, "author", author);
20 
21        BeanUtils.setProperty(book, "price",price );
22 
23        // 查看屬性是否封裝好
24 
25        System.out.println(book);
26 
27 }

 

發現使用上面的代碼可以省略基本數據類型的轉型的問題。進而提高代碼的開發效率。

舉例2:自定義一個類型轉換器類。

 1 public static void main(String[] args)throws Exception {
 2 
 3        // 模擬用戶的輸入的數據如下
 4 
 5        String name = "XML基礎";
 6 
 7        String author = "焦寧波";
 8 
 9        String price = "99.99";
10 
11        String date = "2013-01-04";
12 
13       
14 
15        Book book = new Book();
16 
17       
18 
19        // 注冊一個自己的轉換器
20 
21        /**
22 
23         * converter指定具體的轉換器
24 
25         * clazz遇到什么類型調用上面的轉換器
26 
27         */
28 
29        ConvertUtils.register(
30 
31               new Converter(){
32 
33               // 回調方法  
34 
35               @Override
36 
37               public Object convert(Class type, Object value) {
38 
39                   if(value == null){
40 
41                      return null;
42 
43                   }
44 
45                   // 轉換為String
46 
47                   String data = (String)value;
48 
49                   // 將指定格式的字符串轉換為Date
50 
51                   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
52 
53                   Date date  = null;
54 
55                   try {
56 
57                      date = format.parse(data);
58 
59                      return date;
60 
61                   } catch (ParseException e) {
62 
63                      e.printStackTrace();
64 
65                      return null;
66 
67                   }
68 
69               }
70 
71               },
72 
73               Date.class);
74 
75        // 任務是將以上的屬性設置給指定的Book對象
76 
77        BeanUtils.setProperty(book, "name", name);
78 
79        BeanUtils.setProperty(book, "author", author);
80 
81        BeanUtils.setProperty(book, "price",price );
82 
83        BeanUtils.setProperty(book, "date",date );
84 
85        // 查看屬性是否封裝好
86 
87        System.out.println(book);
88 
89 }

 

如果每次遇到一個復雜類型都需要自定義轉換器,那樣的話實在麻煩。大家看在開發的時候可以先查看該接口是否提供了有效的實現類。

ConvertUtils.register(new DateLocaleConverter(), Date.class);

其實真正的封裝好的數據需要存儲在數據庫中,那么javabean的數據類型應該和數據庫的數據類型保持一致,那么在聲明持久化javabean的時候需要全部為數據庫的基本數據類型。

因此大家在JavaBean中需要導入的是java.sql.Date類,這樣就直接可以將日期自動轉換了。

舉例3:實現封裝好的JavaBean對象的屬性拷貝。

1 // 實現屬性封裝數據的一個拷貝
2 
3 Book copy = new Book();
4 
5 System.out.println(copy);
6 
7 PropertyUtils.copyProperties(copy, book);
8 
9 System.out.println(copy);

 

思考:如果使用BeanUtils封裝用戶的數據,那么也就是一個一個設置啊?豈不是也很麻煩?

其實在真是的環境中我們可以直接獲取用戶提交的所有的數據信息,只需要進行遍歷即可,但是為了方便快速的設置,那么可以將javabean中的屬性名和用戶提交的數據名保持一致。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM