处理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

相关文章

Python容器转换与共有函数举例详解

《Python容器转换与共有函数举例详解》Python容器是Python编程语言中非常基础且重要的概念,它们提供了数据的存储和组织方式,下面:本文主要介绍Python容器转换与共有函数的相关资料,... 目录python容器转换与共有函数详解一、容器类型概览二、容器类型转换1. 基本容器转换2. 高级转换示

Java实现字符串大小写转换的常用方法

《Java实现字符串大小写转换的常用方法》在Java中,字符串大小写转换是文本处理的核心操作之一,Java提供了多种灵活的方式来实现大小写转换,适用于不同场景和需求,本文将全面解析大小写转换的各种方法... 目录前言核心转换方法1.String类的基础方法2. 考虑区域设置的转换3. 字符级别的转换高级转换

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

Python轻松实现Word到Markdown的转换

《Python轻松实现Word到Markdown的转换》在文档管理、内容发布等场景中,将Word转换为Markdown格式是常见需求,本文将介绍如何使用FreeSpire.DocforPython实现... 目录一、工具简介二、核心转换实现1. 基础单文件转换2. 批量转换Word文件三、工具特性分析优点局

使用C#实现将RTF转换为PDF

《使用C#实现将RTF转换为PDF》RTF(RichTextFormat)是一种通用的文档格式,允许用户在不同的文字处理软件中保存和交换格式化文本,下面我们就来看看如何使用C#实现将RTF转换为PDF... 目录Spire.Doc for .NET 简介安装 Spire.Doc代码示例处理异常总结RTF(R

SpringSecurity中的跨域问题处理方案

《SpringSecurity中的跨域问题处理方案》本文介绍了跨域资源共享(CORS)技术在JavaEE开发中的应用,详细讲解了CORS的工作原理,包括简单请求和非简单请求的处理方式,本文结合实例代码... 目录1.什么是CORS2.简单请求3.非简单请求4.Spring跨域解决方案4.1.@CrossOr

requests处理token鉴权接口和jsonpath使用方式

《requests处理token鉴权接口和jsonpath使用方式》文章介绍了如何使用requests库进行token鉴权接口的处理,包括登录提取token并保存,还详述了如何使用jsonpath表达... 目录requests处理token鉴权接口和jsonpath使用json数据提取工具总结reques

C# 空值处理运算符??、?. 及其它常用符号

《C#空值处理运算符??、?.及其它常用符号》本文主要介绍了C#空值处理运算符??、?.及其它常用符号,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、核心运算符:直接解决空值问题1.??空合并运算符2.?.空条件运算符二、辅助运算符:扩展空值处理

浅析Python中如何处理Socket超时

《浅析Python中如何处理Socket超时》在网络编程中,Socket是实现网络通信的基础,本文将深入探讨Python中如何处理Socket超时,并提供完整的代码示例和最佳实践,希望对大家有所帮助... 目录开篇引言核心要点逐一深入讲解每个要点1. 设置Socket超时2. 处理超时异常3. 使用sele