蔣德的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 蔣德 閱讀(1507) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 万载县| 黄冈市| 聊城市| 洛阳市| 台山市| 沂南县| 永安市| 大埔区| 宣汉县| 桦川县| 丹凤县| 曲阜市| 正蓝旗| 安仁县| 山西省| 宜兴市| 邻水| 黄龙县| 仲巴县| 建德市| 微山县| 大余县| 安塞县| 平陆县| 昌图县| 四子王旗| 山西省| 泾源县| 神木县| 沂南县| 普兰店市| 峨山| 贵阳市| 固镇县| 阿克陶县| 江油市| 于都县| 崇信县| 吉安县| 石阡县| 彩票|