蔣德的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 on 2008-02-18 10:19 蔣德 閱讀(1506) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 方正县| 金塔县| 麟游县| 文水县| 墨玉县| 旺苍县| 阿克苏市| 浦江县| 庆云县| 大渡口区| 平定县| 古交市| 静安区| 金山区| 格尔木市| 历史| 新竹市| 岗巴县| 年辖:市辖区| 盘山县| 离岛区| 华宁县| 新乐市| 玛曲县| 花莲市| 寿光市| 阿克陶县| 玉山县| 沐川县| 台南市| 浑源县| 都昌县| 双桥区| 思茅市| 本溪| 班玛县| 镇原县| 鹤庆县| 洛扎县| 化州市| 蓬溪县|