javascript 中定义的 Array 数组,为什么在后台定义数组取到的是字符串呢?

jsp

var num_Id = new Array();
for(var i=0;i<object.length;i++)
{

if(object[i].checked)
{
num_Id[i] = parseInt(object[i].value);

}
}
alert(num_Id);

window.showModalDialog("/member.do?method=toFailureMessage&idss="+num_Id+"",window);

Action

Object idss[] = request.getParameterValues("num_Id");

问题是: idss 的值, key 0 value ?,?,?

一个建值 对应了所有的值,为什么 ?

[color=blue][b]
你的那种做法,在后台需要,自己分割字符串,来处理。

你也可以这样:
"/member.do?method=toFailureMessage&idss="+num_Id[0]"+"&idss="+num_Id[1]

依次类推,将所有的元素,均按照idss=num_Id[i]的方式写入。

这样在后台就可以了Object idss[] = request.getParameterValues("num_Id"); [/b][/color]

[b]使用request.getParameter(String name)[/b]

request.getParameterValues(String name)是获得如checkbox类(名字相同,但值有多个)的数据。 接收数组变量 ,如checkobx类型

request.getParameter(String name)是获得相应名的数据,如果有重复的名,则返回第一个的值 . 接收一般变量 ,如text类型
例子如下:
[code="java"]

request.getParameterValues("test") ----------------- [1, 2, 3]

request.getParameter("test") ------------------ 1
[/code]

不能说对应多个值,是对应了一个对象。而对象中会包含多个值

因为你传过去的是一个对象,

[color=blue][b]
看看你的拼装的URL,numb_id是一个数组。以字符串的形式输出的时候,是将其中的内容以都逗号分隔的形式写出来。[/b][/color]
[quote]
window.showModalDialog("/member.do?method=toFailureMessage&idss="+num_Id+"",window); [/quote]
[color=blue][b]
实际的URL是:

/member.do?method=toFailureMessage&idss= x,y,z

所以,后天接收到的参数是 idss 内容是 x,y,z[/b]
[/color]