@Override
public Object resolveArgument(MethodParameter methodParameter, ModelAndViewContainer modelAndViewContainer, NativeWebRequest nativeWebRequest, WebDataBinderFactory webDataBinderFactory) throws Exception {
Map<String,String[]> map = nativeWebRequest.getParameterMap();
Class type = methodParameter.getParameterType();
Object obj = type.newInstance();
Field[] fields = getAllField(type); //获取类clazz的所有Field
for (Map.Entry<String,String[]> entry : map.entrySet()) {
String key = entry.getKey();
for (Field field : fields) {
if(key.equals(field.getName())){ //如果key在该类中存在对应的field
//调用Spring内部的类型转换机制进行数据绑定
BeanWrapper beanWrapper = new BeanWrapperImpl(obj);
beanWrapper.setPropertyValue(key,entry.getValue());
}
}
}
return obj;
}
SpringMVC类型转换、数据绑定详解[附带源码分析]
最新推荐文章于 2024-03-22 17:47:33 发布