蔣德的JAVA備忘錄

          JAVA備忘錄

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            14 隨筆 :: 4 文章 :: 5 評論 :: 0 Trackbacks

          #

          Spring Mvc 中的SimpleFormController是專門負責數據綁定的Controller ,當做深層綁定時,xx.yy.zz  如果yy 對象為null
          就會拋出空指針.我在前期用如下代碼進行初始化
          Article article = new Article();
          MainType articleType 
          = new MainType();
          article.setMainType(articleType);
          顯爾易見這段代碼繁瑣的,經過摸索,利用java 反射機制,編寫了一個公共方法進行初始化
          package com.allcom.base.commons;

          import java.lang.reflect.Field;
          import java.lang.reflect.Method;

          import com.allcom.vvgoo.persist.Merchant;
          /** *//**
           * 初始化對像的屬性 ,對于日期型數據將自動填充當前日期
           * 
           * 
          */

          public class AutoView {
              
              
          public static void AutoView(Object command){
                   
          if(null!=command){
                       Class classType 
          = command.getClass();
                       Field fields[]  
          = classType.getDeclaredFields();
                       
          for(int i=0;i<fields.length;i++){
                             Field field 
          = fields[i];
                             String fieldName 
          = field.getName();
                             String typeName 
          =field.getType().getName();
                             String firstLetter 
          = fieldName.substring(0,1).toUpperCase();
                             
                             String getMethodName 
          = "get"+firstLetter+fieldName.substring(1);
                             String setMethodName 
          = "set"+firstLetter+fieldName.substring(1);
                          
                             
                             
          try {
                                 Method setMethod 
          = classType.getMethod(setMethodName,new Class[]{field.getType()});
                                 Class clazz 
          = Class.forName(typeName);
                                 Object value 
          = clazz.newInstance();
                                    
          if (null!=value){
                                        setMethod.invoke(command,
          new Object[]{value});
                                     }

                                }
           catch (Exception e) {
                                 
                              }
           
                         
                          }

                  }

              }

              
              
          public static void main(String[] arg){
                  Merchant merchant 
          = new Merchant();
                  AutoView view 
          = new AutoView();
                  view.AutoView(merchant);
                  System.out.print(Util.dateToString(merchant.getCreateDate(), 
          "yyyy-MM-dd"));
                  
              }


          }

          其中 Merchant 是任意的一個javaBean,在使用該方法處理后,其中xx.yy.zz 中的yy 對象會自動填充該對象全新的實例
          posted @ 2008-02-18 10:19 蔣德 閱讀(1506) | 評論 (0)編輯 收藏

          僅列出標題
          共2頁: 上一頁 1 2 
          主站蜘蛛池模板: 晋城| 南江县| 西安市| 北票市| 汾阳市| 互助| 分宜县| 彭阳县| 应城市| 平山县| 宿迁市| 巫山县| 麻栗坡县| 馆陶县| 绥滨县| 津南区| 穆棱市| 辽宁省| 海城市| 商都县| 湖口县| 论坛| 黎平县| 建始县| 龙井市| 伊春市| 清远市| 金寨县| 张掖市| 九寨沟县| 孝昌县| 文山县| 凌海市| 周口市| 武功县| 双江| 壶关县| 九江市| 平舆县| 台江县| 镇雄县|