文档章节

将request传的值一次性装入bean

卢水发
 卢水发
发布于 2014/06/17 15:19
字数 457
阅读 14
收藏 0
点赞 0
评论 0

先将前端传过来的值封装到map中,可以使用request.getParameterNames()简单的完成:

代码如下:

/**
     * bindDataToBean:将前端传过来的数据绑定到Map中. <br/>
     * TODO(这里描述这个方法适用条件 – 可选).<br/>
     * @author Administrator
     * @param clazz
     * @return
     * @since JDK 1.6
     */
    public Map<String,String> bindDataToMap(){
     this.request.getParameterNames();
     Enumeration pNames = request.getParameterNames();
     Map<String,String> dataMap = new HashMap<String,String>();
     while(pNames.hasMoreElements()){
         String dataName=(String)pNames.nextElement();
         String dataValue = request.getParameter(dataName);
         dataMap.put(dataName, dataValue);
     }
     return dataMap;
    }

下面是将map中的值封装到bean中:

/**
  * bindDataToBean:将前端传过来的数据绑定到bean中. <br/>
  * TODO(这里描述这个方法适用条件 – 可选).<br/>
  * @author Administrator
  * @param clazz
  * @return
  * @since JDK 1.6
  */
    public Object bindDataToBean(Class clazz) {
  try {
   return BeanUtil.setBeanValue(clazz.newInstance(), bindDataToMap());
  } catch (InstantiationException e) {
   e.printStackTrace();
   return null;
  } catch (IllegalAccessException e) {
   e.printStackTrace();
   return null;
  }
 }

下面是具体操作:

/**
     * 给bean对象进行设值
     * @param beanClazz
     * @param object
     * @param oMap
     * @return
     */
    public static Object setBeanValue(Object object,Map<String,String> oMap){
        if(oMap==null||oMap.isEmpty()){
       return null;
     }
     try {
   //获取该bean中的所有字段
   Field[] fields = object.getClass().getDeclaredFields();//获得属性
   for (Field field : fields) {
    if (!field.getName().contains("table")) {
     PropertyDescriptor pd = new PropertyDescriptor(field.getName(),object.getClass());
     Method setMethod = pd.getWriteMethod();//获得get方法
     String typeName = field.getType().getSimpleName().toLowerCase();
     String fieldName = field.getName();
     if(typeName.equals("string")){
      setMethod.invoke(object,DataRever.getString(oMap.get(fieldName)));
     }else if(typeName.equals("int")){
      setMethod.invoke(object,DataRever.getInt(oMap.get(fieldName)));
     }else if(typeName.equals("integer")){
      setMethod.invoke(object,DataRever.getInt(oMap.get(fieldName)));
     }else if(typeName.equals("long")){
      setMethod.invoke(object,DataRever.getLong(oMap.get(fieldName)));
     }else if(typeName.equals("double")){
      setMethod.invoke(object,DataRever.getDouble(oMap.get(fieldName)));
     }else if(typeName.equals("date")){
      setMethod.invoke(object,DateUtils.parse(oMap.get(fieldName).toString()));
     }
    }
   }
   return object;
  } catch (Exception e) {
   System.out.println("转换错误,有可能你传入的对象不是bean对象");
   e.printStackTrace();
   return null;
  }
    }

 

调用时只需要:

UnitUseGB unitusegb = (UnitUseGB) wu.bindDataToBean(UnitUseGB.class);

就这样哪怕是你bean再多属性也不用一个一个set,一个一个的get,

值的注意的是,你的前端表单中的name需要与后台bean中属性一样;

© 著作权归作者所有

共有 人打赏支持
卢水发
粉丝 7
博文 68
码字总数 41134
作品 0
深圳
程序员
Struts1和2常用的标签

Struts1常用标签 Struts提供了五个标签库,即:HTML、Bean、Logic、Template和Nested。 A.Html 标签库 <html>标签:它有两个属性:locale和xhtml,两者都不是必需的。 <base>标签:表示所包含...

王小明123 ⋅ 2014/03/26 ⋅ 0

django上传文件

template html(模板文件): <form enctype="multipart/form-data" method="POST" action="/address/upload/"> <input type="file" name="file" /><br/> <input type="submit" value="上传文件......

charlesdong1989 ⋅ 2012/03/21 ⋅ 0

Spring中关于bean的作用域与生命周期

在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。简单地讲,bean就是由IoC容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什...

忻胜霄 ⋅ 06/07 ⋅ 0

springMVC配置详解

web.xml配置. <!--Springmvc配置--> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--可以自定义s......

xiejunbo ⋅ 2014/09/18 ⋅ 0

Java程序员从笨鸟到菜鸟之(二十三)常见乱码解决以及javaBean基础知识

乱码问题应该是做javaWeb开发人员都遇到过的问题吧,这个问题当时还影响了我学习java的想法,甚至有过想放弃的想法,没办法,当时年轻,呵呵。其实产生乱码问题的原因有很多,解决乱码的问题...

长平狐 ⋅ 2012/11/12 ⋅ 1

Spring MVC 传值方式总结

前端传到Controller: 方法1 通过HttpServletRequest 。写法如下: @Controllerpublic class MyTestController {@RequestMapping("/print")public String PrintInfo(HttpServletRequest requ......

cnn237111 ⋅ 2017/02/01 ⋅ 0

Python 的完美 json loads

为了对付表单提交时参数多和 json 结构复杂的情况,我写了一个名为 的处理函数来对请求对象递归调用 以期能够一次性将所有参数转化为更好用的 Python 类型。后来又发现了 web.py 的 对象,使...

lionets ⋅ 2015/01/15 ⋅ 0

Struts中Action的深入了解

Struts中的Action分为以下几种: 1.Action 2.DispatchAction 3.LookupDispatchAction 4.MappingDispatchAction 1)Action 普通Action 2)DispatchAction 同一Action中有多个执行方法,由param......

iTeacher ⋅ 2012/01/13 ⋅ 0

Struts2的Stack Context和ValueStack

1、提到Struts2的传值功能时,经常会见到Stack Context和ValueStack等概念,那么它们到底是什么,有什么作用呢。 ValueStack(值栈):Struts2将OGNL上下文设置为Struts2中的ActionContext(内...

Glogo ⋅ 2013/03/08 ⋅ 0

spring MVC使用及新特性说明

一、 spring MVC使用简述 配置部分: jar包和依赖jar包 前端控制器配置(web.xml): load-on-startup:表示启动容器时初始化该Servlet; url-pattern:表示哪些请求交给Spring Web MVC处理, ...

clark911 ⋅ 2016/08/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HiSDP —— 高效的C++软件开发平台

目前阿里集团每天有近1000PB的数据是通过LogAgent采集的,为了让LogAgent做到资源占用节省和高效采集,背后是基于HiSDP去构建的。 缘由 当决定采用C++编程语言去开发一个软件时,紧接着所面临...

阿里云云栖社区 ⋅ 6分钟前 ⋅ 0

zookeeper-3.4.12 下载与安装教程

一、zookeeper下载地址 http://mirrors.hust.edu.cn/apache/zookeeper/ 二、启动教程 把压缩包放在指定目录下 第三: 进入 conf文件夹底下 zoo_sample.cfg 文件名改成 zoo.cfg 第四步: 进入b...

泉天下 ⋅ 7分钟前 ⋅ 0

Oracle 中文日期转换

SELECT TO_date('2011年11月11日', 'yy"年"mm"月"dd"日"') FROM DUAL; 1. Oracle无法识别中文格式,所以添加双引号。 2. 后面的格式是指字符串在转换前的格式,而不是指转换后的格式。...

名侦探柯南 ⋅ 9分钟前 ⋅ 0

MySell:API Spring Boot

起步 类目 商品 订单

BeanHo ⋅ 11分钟前 ⋅ 0

Spring方法拦截器MethodInterceptor

参考资料 1、Spring方法拦截器MethodInterceptor 2、Sharding JDBC源码分析-JdbcMethodInvocation类的作用

哎小艾 ⋅ 14分钟前 ⋅ 0

正则表达式

元字符 元字符,又叫字符集,就是用一些特殊符号表示特定种类的字符或位置。 匹配字符 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 匹配...

wangchen1999 ⋅ 14分钟前 ⋅ 0

数据库数据导入Elasticsearch案例分享

基于bboss持久层和bboss elasticsearch客户端实现数据库数据导入es案例分享(支持各种数据库和各种es版本) 1.案例对应的源码 https://gitee.com/bboss/bboss-elastic/blob/master/bboss-el...

bboss ⋅ 15分钟前 ⋅ 0

动手---sbt(2)

参考 https://blog.csdn.net/leishangwen/article/details/46225587 建立一个chisel_max目录,文件内容如后面所述,现在开始执行命令: joe@joe-Aspire-Z3730:/media/sdb4/download/scala$ c......

whoisliang ⋅ 22分钟前 ⋅ 0

纯js实现最简单的文件上传(后台使用MultipartFile)

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>XMLHttpRequest上传文件</title> <script type="text/javascript"> //图片上传 var xhr......

孟飞阳 ⋅ 27分钟前 ⋅ 0

iOS宇宙大战游戏、调试工具、各种动画、AR相册、相机图片编辑等源码

iOS精选源码 日期时间选择器,swift Space Battle 宇宙大战 SpriteKit游戏源码 LLDebugTool - 便捷的IOS调试工具(新增截屏功能) 相机扫描or长按识别二维码、FMDB、键盘动态高度、定位等 动画...

sunnyaigd ⋅ 28分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部