后台@RequestParam接收参数,js中ajax怎么传参

article/2025/10/12 4:29:19

注意:传的参数类型必须和后台定义的参数类型一致,否则会报400错误。

type=post :  post提交

type=get:  get提交

get和post提交的区别:get请求的参数会和url拼接起来,当参数较多时,会导致url过长。

所以:当参数较多时,适合post提交;参数少时适合get提交,但get提交会引起汉字乱码;

注意前后台的type一致。

(也可以直接将参数以?&的方式拼接在url后面,这种方式是get提交)

一、get提交

js:

contentType : 'application/x-www-form-urlencoded'
或者contentType : 'application/json' 都可

 但data里面必须是json字符串,即var jsonStr = {"pageNum":2, "pageSize":20}格式;不能用JSON.stringify(jsonStr)来转化;否则后端接收到的数据为null

var jsonStr = {"pageNum":2, "pageSize":20, "serialNumber":serialNumber, "name":name, "capacity":capacity, "createTimeStart":createTimeStart, "createTimeEnd":createTimeEnd};var url = "commodityTemplate/list";$.ajax({async : false,url : url,type : 'get',contentType : 'application/x-www-form-urlencoded',//或者contentType : 'application/json',dataType:'json',data : jsonStr,success : function(o) {callback(o);},error:function(){alert("出错啦...");},});

controller:

get提交时,后端会有乱码,此时需要进行编码转换

String name = new String(name.getBytes(“ISO-8859-1”), “UTF-8”)

 @RequestMapping(value ="/list", method = RequestMethod.POST)@ResponseBodypublic ResultObject list(@RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,@RequestParam(value = "serialNumber", required = false)String serialNumber,@RequestParam(value = "name", required = false)String name,@RequestParam(value = "capacity", required = false)Integer capacity,@RequestParam(value = "createTimeStart", required = false)Long createTimeStart,@RequestParam(value = "createTimeEnd", required = false)Long createTimeEnd) throws Exception{//封装查询条件Map map = new HashMap();map.put("pageNum", pageNum);map.put("pageSize", pageSize);map.put("serialNumber", new String(serialNumber.getBytes(“ISO-8859-1”), “UTF-8”));map.put("name", new String(name.getBytes(“ISO-8859-1”), “UTF-8”));map.put("capacity", capacity);map.put("createTimeStart", createTimeStart);map.put("createTimeEnd", createTimeEnd);return commodityTemplateService.list(map);}

二、post提交

js:

注意:

1、contentType : 'application/x-www-form-urlencoded'
不能是:contentType : 'application/json',否则后端接收到的数据为null

2、data里面必须是json字符串,即var jsonStr = {"pageNum":2, "pageSize":20}格式;不能用JSON.stringify(jsonStr)来转化;否则后端接收到的数据也为null

var jsonStr = {"pageNum":2, "pageSize":20, "serialNumber":serialNumber, "name":name, "capacity":capacity, "createTimeStart":createTimeStart, "createTimeEnd":createTimeEnd};var url = "commodityTemplate/list";$.ajax({async : false,url : url,type : 'POST',contentType : 'application/x-www-form-urlencoded',dataType:'json',data : jsonStr,success : function(o) {callback(o);},error:function(){alert("出错啦...");},});

controller:

 post提交,后端接收的参数不会出现乱码,因为在web.xml中已经处理了post请求的乱码。

 @RequestMapping(value ="/list", method = RequestMethod.POST)@ResponseBodypublic ResultObject list(@RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize,@RequestParam(value = "serialNumber", required = false)String serialNumber,@RequestParam(value = "name", required = false)String name,@RequestParam(value = "capacity", required = false)Integer capacity,@RequestParam(value = "createTimeStart", required = false)Long createTimeStart,@RequestParam(value = "createTimeEnd", required = false)Long createTimeEnd) throws Exception{//封装查询条件Map map = new HashMap();map.put("pageNum", pageNum);map.put("pageSize", pageSize);map.put("serialNumber", serialNumber);map.put("name", name);map.put("capacity", capacity);map.put("createTimeStart", createTimeStart);map.put("createTimeEnd", createTimeEnd);return commodityTemplateService.list(map);}

 

 

======以下于你或许是个好消息======

 

好消息就是:欢迎访问下面的博客网站哈哈哈......

 

网站名称:Java学习笔记网  (点击进入)

url:https://www.javaxxbj.com/ (点击进入)

网站特点:

  1. java主要网站的导航目录
  2. 你可以记录自己的博客,并可以控制显示和隐藏,可利于管理啦!!!
  3. 可以添加收藏各个网站的链接!!!
  4. 甚至也可以文章收藏,点赞,关注,查看我的消息等功能哦!!1

看一小点点的截图:

或可一试哦!

 


http://chatgpt.dhexx.cn/article/lExV86fu.shtml

相关文章

原生js实现ajax请求(带请求头header)和数据传参过程代码

一、Ajax 概述 Ajax 是 Asynchronous Javascript And XML 的简写 Ajax是一门技术,并不是一门语言 使用XHTMLCSS来标准化呈现 使用XML和XSLT进行数据交换及相关操作 使用XMLHttpRequest对象与Web服务器进行异步数据通信 使用Javascript操作Document Object Model进…

ajax的三种传参方式

ajax的三种传参方式 ajax的第一种第二种传递参数的方式,如下图: ajax的第三种传递参数的方式,通过serialize()序列化方法传递参数,如下图:

Java类加载顺序

引言 在日常工作中,比较少的机会会探究类加载机制,类加载顺序,但是这部分在代码优化,深入学习jvm有着极大的帮助,本文帮助不太了解类加载顺序的人从代码层级了解类加载顺序。 示例1-普通类 class Foo{private int x…

Java类加载器(ClassLoader)

Java中一个类从它的class文件被加载进入虚拟机到被JVM卸载,其生命周期大致可以分为以下几步: 每个步骤详细内容可以参考相关JVM书籍,在整个流程中除了加载之外的几个步骤主要都是由JVM控制执行的,留给我们手动干涉的空间不是很大…

java中类的加载

类加载器的作用: java中源文件通过java编译器产生了字节码文件,而类加载器及时负责将字节码文件加载到内存中。并将这些静态数据转化成方法区中运行时数据结构。然后再堆中生成一个代表个类的class对象,即java.lang.class类对象。 类缓存&am…

Java类加载过程详解

类的生命周期 类的加载类加载过程加载链接验证准备解析 初始化 总结 首先我们先简单了解一下整个JVM的体系结构是怎样的,如下图所示(图1): 再详细具体一点(图2): 上面的图片有些地方看不懂没关系…

什么是类的加载(Java)

一、什么是类的加载 java文件通过编译器变成了.class文件,接下来类加载器又将这些.class文件加载到JVM中。其中类装载器的作用其实就是类的加载。 其实,类加载器并不需要等到某个类被“首次主动使用”时再加载它,JVM规范允许类加载器在预料某…

【JVM】Java类加载机制详解

【JVM】Java类加载机制详解 文章目录 【JVM】Java类加载机制详解一:类加载子系统1:类加载器子系统的作用2:加载器 ClassLoader 的角色 二:类的加载过程1:加载阶段2:验证阶段:确保被加载的类的正…

JAVA开发(java类加载过程)

1、java语言的平台无关性。 因为java语言可以跑在java虚拟机上,所以只要能装java虚拟机的地方就能跑java程序。java语言以后缀名 .java为文件扩展名。通过java编译器javac编译成字节码文件.class 。java字节码文件通过java虚拟机解析运行。在虚拟机级别对class文件…

图解Java类加载机制

文章目录 前言类加载的概述双亲委派加载机制类加载的隔离机制contextClassLoaderSPI用处找文件用处 类加载的顺序顺序概述类加载的一般方式类加载的触发点 类的实例化多线程环境下,为何也只有一个Class的对象 图解和举例普通Java应用日常Web应用 附录 前言 网上有很…

【Java 】Java 类加载和类加载器

文章目录 前言一、加载二、链接验证准备解析 三、初始化发生的时机不会触发类的初始化 四、类加载器双亲委派模式 前言 Java 的类加载阶段分为:加载、链接、初始化,而链接的过程中包括:验证、准备、解析。 一、加载 将类的字节码载入方法区…

Java类加载过程图解

朋友给我发了一道有意思的题目,如下 为什么用.class的方式加载类和以Class.forName()的方式加载的结果不同呢,原因很简单,就是类加载过程的不同。 这就扯到基础理解上了,就是Java是如何加载一个类的呢? 上图是我绘制的…

Java类加载器加载类顺序

java ClassLoader的学习 java是一门解释执行的语言,由开发人员编写好的java源文件先编译成字节码文件.class形式,然后由java虚拟机(JVM)解释执行,.class字节码文件本身是平台无关的,但是jvm却不是,为了实现所谓的一次…

java类如何加载

最近研究java的进阶知识,先从java类加载机制学起,原先看过《深入理解java虚拟机》这本书,奈何书的知识面太广及自身只看了一遍,很多知识并不是很理解,今天看了几篇别人讲解的java类加载机制,觉得讲的很好&a…

JVM——Java类加载机制总结

1. 类加载器的组织结构 转载请注明出处:JVM——Java类加载机制总结_SEU_Calvin的博客-CSDN博客 类加载器 ClassLoader是具有层次结构的,也就是父子关系。其中,Bootstrap是所有类加载器的父亲。 (1)Bootstrapclass lo…

深入理解Java类加载器(1):Java类加载原理解析

1 基本信息 每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解…

深入理解Java类加载器(一):Java类加载原理解析

摘要: 每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这个异常背后涉及到的是Java技术体系中的类加载机制。本文简述了JVM三种预定义类加载器,即启动类加载器、扩展类加载器和系统类加载器,并介绍和分析它…

【Java · 类加载】类加载器

1. 概述 类加载器是 JVM 执行类加载机制的前提。 ClassLoader的作用: ClassLoader是Java的核心组件,所有的Class都是由ClassLoader进行加载的,ClassLoader负责通过各种方式将Class信息的二进制数据流读入JVM内部,转换为一个与目…

java类加载

当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化。 一、类加载过程 加载指…

Java的类加载

1、类的加载过程 Java文件通过javac编译成.class二进制字节码文件,然后交给类加载器加载到我们的虚拟机内存中,最后我们通过new 对象来实现对象的初始化,才能调用和执行这个类,类的加载有三步:加载、连接、初始化。 1.1、加载 …