将javascript数组传递给servlet

Posted

技术标签:

【中文标题】将javascript数组传递给servlet【英文标题】:Passing javascript array to servlet 【发布时间】:2012-12-15 11:44:59 【问题描述】:

我在 SO 上查看过有关此主题的先前问题,但我的问题尚未解决。

我将数组从 javascript 传递给 servlet。

JavaScript 代码:

var action = new Array();
function getProtAcionValues(rowNo,columnCount)

    for(var j=0;j<columnCount;j++)
    
        action[j] =  document.getElementById('textActions'+rowNo+''+j).value;
        alert(action[j]);
    

Servlet 代码:

String actions[] = request.getParameterValues("action[]");
if(actions!=null)
for(int i=0;i<actions.length;i++)

    System.out.print(" Action: "+actions);

else
    System.out.println("Action is null");

使用上面的代码,我收到消息 “Action is null”

如果我尝试

String actions[] = request.getParameterNames("action[]");

我收到语法错误:

The method getParameterNames() in the type ServletRequest is not applicable for the arguments (String)

如果代码有问题,请告诉我。

【问题讨论】:

调用 servlet 的 html 或 JavaScript 代码在哪里? 你能贴出你如何将动作数组发送到servlet的代码吗...
你能发布你如何将动作数组发送到 servlet 的代码吗?我的意思是如何设置 action[] 来请求对象,请告诉我这对我非常有用 【参考方案1】:

您可以简单地获取带有数组名称的数组...

字符串动作[] = request.getParameterValues("action");

【讨论】:

Tomcat 无法识别参数,除非我在名称末尾添加括号,即 ("action[]")..【参考方案2】:

您不能将 java 数组作为参数传递,因为它是一个结构。最好的方法是将其序列化为一个字符串对象,如 json。您可以使用JSON.stringify。简单高效。因为你也可以在服务器中序列化,它非常有用。

【讨论】:

【参考方案3】:

使用表单动作传递 Javascript 数组变量以将值发送到 servlet,然后使用

String[] darray=request.getParameterValues("variable name used with link");

【讨论】:

以上是关于将javascript数组传递给servlet的主要内容,如果未能解决你的问题,请参考以下文章

将javascript数组传递给servlet

Javascript 是不是通过引用或值将数组传递给函数?

将 C# ASP.NET 数组传递给 Javascript 数组

将 C# ASP.NET 数组传递给 Javascript 数组

将 JavaScript 数组传递给 IEnumerable 会给出空值

将 javascript 数组传递给 c# 方法