1. 程式人生 > >將request中的參數轉換成bean的萬能工具類

將request中的參數轉換成bean的萬能工具類

object 否則 .get ring util bean 讀取 屬性 表單提交

package cn.itcast.utils; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.commons.beanutils.BeanUtils; /** * WebUtils工具類: * 1. 作用: * 用servlet獲取表單提交的信息,將表單信息保存在一個bean中 * 2. 知識點: * 泛型和反射 * BeanUtils工具: * 1. 導包: * * commons-beanutils-1.9.2.jar * * commons-logging.jar * 2. 功能: * BeanUtils主要是用於將對象的屬性封裝到對象中。 * 3. 優點: * 從配置文件或表單中讀到的數據都是String類型,可以不用是管什麽樣的數據類型直接使用BeanUtils的setProperty方法實現自動的數據類型轉換 * 4. 使用: * * BeanUtils.setProperty(bean, name, value); * 其中bean是指你將要設置的對象,name指的是將要設置的屬性(寫成”屬性名”),value(從配置文件中讀取到到的字符串值). * * BeanUtils.copyProperties(bean, name, value),和上面的方法是完全一樣的,使用哪個都可以. * * ConvertUtils.register(Converter converter , ..), * 當需要將String數據轉換成引用數據類型(自定義數據類型時),需要使用此方法實現轉換。 * * BeanUtils.populate(bean,Map),其中Map中的key必須與目標對象中的屬性名相同,否則不能實現拷貝. * * BeanUtils.copyProperties(newObject,oldObject),實現對象的拷貝 * * @author 國真 * */ public class WebUtils { public static <T> T request2Bean(HttpServletRequest request,Class<T> beanClass){ try{ //實例化傳進來的類型 T t = beanClass.newInstance(); //之前使用request.getParameter("name")根據表單中的name值獲取value值 //request.getParameterMap()方法不需要參數,返回結果為Map<String,String[]>,也是通過前臺表單中的name值進行獲取 Map map = request.getParameterMap(); //將Map中的值設入bean中,其中Map中的key必須與目標對象中的屬性名相同,否則不能實現拷貝 BeanUtils.populate(t, map); return t; }catch (Exception e) { throw new RuntimeException(e); } } }

將request中的參數轉換成bean的萬能工具類