处理HttpServletRequest 请求参数与参数转换为实体类

2024-06-15 06:38

本文主要是介绍处理HttpServletRequest 请求参数与参数转换为实体类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

此文是自己作记录用,适用于新手参考。资深程序员请绕道

当前端传递大批量参数时,后端需要进行获取参数与赋值给对应实体类 (当然这种情况为 前端传递的 参数名 与 实体类中的参数名称不相同。如果传递的参数名与实体类参数相同,由于SpringMCV的特性,则Controller层的对应的方法,直接用 实体类去接收,会自行赋值)

 

代码如下 :

 

import net.sf.json.JSONObject;
import org.apache.commons.beanutils.BeanUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;/*** Created by huyong on 2016/6/16.*/
public class RequestUtil {private static final Logger LOGGER = LoggerFactory.getLogger(RequestUtil.class);private RequestUtil() {}/*** request的全部参数转换成map* @param request* @return*/@SuppressWarnings("unchecked")public static Map<String, String[]> getMap(HttpServletRequest request){return request.getParameterMap();}/*** request的部分参数转换成map:* 根据的keys指定的的Key从request取出值放到Map中* @param request* @param keys 需要转的key,多个key用豆号隔开* @return*/public static Map<String,Object> getMap(HttpServletRequest request, String keys){String[] split = keys.split(",");Map<String,Object> map = new HashMap<String, Object>(split.length);for (String key : split) {map.put(key, request.getParameter(key));}return map;}/*** 解析JSONObject对象转换为 map* @param keys* @param MainJsonObj* @return*/public static Map<String,Object> getMap(String keys,JSONObject MainJsonObj){String[] split = keys.split(",");Map<String,Object> map = new HashMap<String, Object>(split.length);for(String key:split){map.put(key,MainJsonObj.getString(key));}return map;}/*** 将map转换成bean对象:* 根据Map的keyValues创建Bean对象* @param theClass* @param keyValues* @return*/public static <T> T getBean(Class<T> theClass,Map<String,Object> keyValues){T bean = null;try {bean = theClass.newInstance();BeanUtils.populate(bean, keyValues);} catch (Exception e) {LOGGER.error("map转换成bean对象出错", e);}return bean;}
}

 

 

 

 

再一个例子,传递的参数名如果与实体类的参数名相同,则直接用实体类接收。如下 User Info 为实体类,里面有参数 userName,sex ,age 等参数,那么前端页面则也传递这些参数名称,则会自动赋值。

 

/*** 保存用户信息* @return*/
@RequestMapping("/save")
@ResponseBody
public Result save(UserInfo userInfo){Map<String,Object> map = Maps.newConcurrentMap();return successResponse(map);
}

 

 

 

 

这篇关于处理HttpServletRequest 请求参数与参数转换为实体类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062701

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

详解Spring Boot接收参数的19种方式

《详解SpringBoot接收参数的19种方式》SpringBoot提供了多种注解来接收不同类型的参数,本文给大家介绍SpringBoot接收参数的19种方式,感兴趣的朋友跟随小编一起看看吧... 目录SpringBoot接受参数相关@PathVariable注解@RequestHeader注解@Reque

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja

spring 参数校验Validation示例详解

《spring参数校验Validation示例详解》Spring提供了Validation工具类来实现对客户端传来的请求参数的有效校验,本文给大家介绍spring参数校验Validation示例详... 目录前言一、Validation常见的校验注解二、Validation的简单应用三、分组校验四、自定义校

SpringBoot中Get请求和POST请求接收参数示例详解

《SpringBoot中Get请求和POST请求接收参数示例详解》文章详细介绍了SpringBoot中Get请求和POST请求的参数接收方式,包括方法形参接收参数、实体类接收参数、HttpServle... 目录1、Get请求1.1 方法形参接收参数 这种方式一般适用参数比较少的情况,并且前后端参数名称必须

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

MyBatis延迟加载的处理方案

《MyBatis延迟加载的处理方案》MyBatis支持延迟加载(LazyLoading),允许在需要数据时才从数据库加载,而不是在查询结果第一次返回时就立即加载所有数据,延迟加载的核心思想是,将关联对... 目录MyBATis如何处理延迟加载?延迟加载的原理1. 开启延迟加载2. 延迟加载的配置2.1 使用