后台接收int[] 类型的值

1.前台使用ajax传递数组类型的值,后台无法接收

前台 js代码:

 1 $(document).ready(function(){
 2     $("#bu").click(function(){
 3         var ids = new Array(2,3,4);
 4         $.ajax({
 5             url : "${pageContext.request.contextPath}/order/test",
 6             data : {
 7                 "ids" :ids
 8             },
 9             dataType : "json",
10             success : function(data) {
11                 alert(额);
12             },
13             error : function() {
14                 alert("预览失败");
15             }
16         });
17     });
18 });

GET请求参数:

后台 java代码:

1 @RequestMapping("/test")
2 public void test(int[] ids,HttpServletRequest request){
3     String[] id = request.getParameterValues("ids");
4 }

第一次显示:

id

ids和id 都没有值;

解决方法:

1.在ajax中加入traditional: true

代码如下:

 1 $(document).ready(function(){
 2     $("#bu").click(function(){
 3         var ids = new Array(2,3,4);
 4         $.ajax({
 5             url : "${pageContext.request.contextPath}/order/test",
 6             traditional: true,
 7             data : {
 8                 "ids" :ids
 9             },
10             dataType : "json",
11             success : function(data) {
12                 alert(额);
13             },
14             error : function() {
15                 alert("预览失败");
16             }
17         });
18     });
19 });

GET请求参数为:

后台

后台两种方法都能够接收到参数:

2.把array类型的ids转为字符串:

 1 $(document).ready(function(){
 2     $("#bu").click(function(){
 3         var ids = new Array(2,3,4);
 4         $.ajax({
 5             url : "${pageContext.request.contextPath}/order/test",
 6             data : {
 7                 "ids" :ids+""
 8             },
 9             dataType : "json",
10             success : function(data) {
11                 alert(额);
12             },
13             error : function() {
14                 alert("预览失败");
15             }
16         });
17     });
18 });

GET请求参数:

后台接收到的参数:

能够接收到,但是能转为int数组,String数组变成一个。

解释相关:飞机https://my.oschina.net/i33/blog/119506

时间: 2024-11-03 10:42:46

后台接收int[] 类型的值的相关文章

java练习题-求int类型N值的阶乘

//求int类型N值的阶乘 public static int getNumsJieCheng(int i){ int rs = 1; if(i==0||i==1){ return i; } if(i<0){ return 0; } for(int x=i;x>0;x--){ rs*=x; } return rs; }

C# 类型基础 值类型和引用类型

引言 本文之初的目的是讲述设计模式中的 Prototype(原型)模式,但是如果想较清楚地弄明白这个模式,需要了解对象克隆(Object Clone),Clone其实也就是对象复制.复制又分为了浅度复制(Shallow Copy)和深度复制(Deep Copy),浅度复制和深度复制又是以如何复制引用类型成员来划分的.由此又引出了引用类型和值类型,以及相关的对象判等.装箱.拆箱等基础知识.索性从最基础的类型开始自底向上写起. 值类型和引用类型 先简单回顾一下C#中的类型系统.C# 中的类型一共分为

JavaSE8基础 Scanner hasNextInt 判断输入的是否符合int类型

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        code: package jizuiku.t00; import java.util.Scanner; public class Demo { public static void main(String[] args) { //System.in: 标准的输入流,System类下的一个静态字段 Scanner s

mysqlint类型的长度值mysql在建表的时候int类型后的长度代表什么

详解mysql int类型的长度值 mysql在建表的时候int类型后的长度代表什么 是该列允许存储值的最大宽度吗 为什么我设置成int(1), 也一样能存10,100,1000呢. 当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法. 以下是每个整数类型的存储和范围

asp.net C# int 类型在32/64位环境下取值范围无变化

最近在学习中突然想到,我在64位环境下,int取值范围是否有变化?为了检测这个结果,我做了以下这个测试:1.环境:win7旗舰版64位+vs2010 sp1(版本号:10.0.40219.1SP1Rel)+.Net 4.0.30319 SP1Rel2.代码: 代码如下 复制代码 using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace ConsoleApplicatio

详解mysql int类型的长度值问题【转】

mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢. 当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法. 以下是每个整数类型的存储和范围(来自mysql手册) 类型 字

详解mysql int类型的长度值问题

我的朋友海滨问我mysql在建表的时候int类型后的长度代表什么? 是该列允许存储值的最大宽度吗? 为什么我设置成int(1), 也一样能存10,100,1000呢. 当时我虽然知道int(1),这个长度1并不代表允许存储的宽度,但却没有一个合理的解释. 或者说对这个长度也没有真正的研究过到底代表什么, 平时都用int(11), 也不知道为什么要11位. 所以我在网上查阅了一些资料, 也仔细的看了mysql手册关于int data type的说法. 以下是每个整数类型的存储和范围(来自mysql

【C语言】编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数。

/*编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数. 例如:输入传入(0 , 5)函数返回5,传入(10 , 9)函数返回1,传入(12 , 4)函数返回4 */ #include <stdio.h> int yue(int a,int b) { int temp; int n; if (a>b) { temp=a; a=b; b=temp; } n=a; if(a==0) return b; else while(n!=0) { if( a%n==0 &&

Ajax 提交表单或提交数据到后台时没有提交值(后台接收不到值)

function markMeg(idsStr){ alert(idsStr); $.tips("正在提交数据,请稍后...",30); $.ajax({ type: "POST", dataType: "json", url:"my/message/mark", data: {"ids":idsStr}, success: function (data) { if(data["doResult&