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 對象會自動填充該對象全新的實例
就會拋出空指針.我在前期用如下代碼進行初始化





















































其中 Merchant 是任意的一個javaBean,在使用該方法處理后,其中xx.yy.zz 中的yy 對象會自動填充該對象全新的實例