BeanUtils.populate()的作用

Posted fdy-study-consist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BeanUtils.populate()的作用相关的知识,希望对你有一定的参考价值。

            //1. 获得请求参数
            Map<String, String[]> map = request.getParameterMap();
            User user = new User();
            // BeanUtils.populate( Object bean, Map properties ),
//这个方法会遍历map<key, value>中的key,如果bean中有这个属性,就把这个key对应的value值赋给bean的属性。
            BeanUtils.populate(user,map);

    根据Java规范:request.getParameterMap()返回的是一个Map类型的值,该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系。这个返回值有个特别之处——只能读。不像普通的Map类型数据一样可以修改。这是因为服务器为了实现一定的安全规范,所作的限制。比如WebLogic,Tomcat,Resin,JBoss等服务器均实现了此规范。

   如果实在有必要在取得此值以后做修改的话,要新建一个map对象,将返回值复制到此新map对象中进行修改,用新的map对象代替使用之前的返回值。

Map readOnlyMap = request.getParameterMap();  
Map writeAbleMap = new HashMap();  
writeAbleMap.putAll(readOnlyMap);  
writeAbleMap.remove()或者put()...  
在后续的程序代码中使用writeAbleMap即可  

以上是关于BeanUtils.populate()的作用的主要内容,如果未能解决你的问题,请参考以下文章

使用BeanUtils.populate将map集合封装为bean对象

求助 关于BeanUtils.populate异常

BeanUtils.populate( Object bean, Map properties )方法的介绍

javax.servlet.ServletException: BeanUtils.populate

javax.servlet.ServletException: BeanUtils.populate

Map和Bean的相互转换