将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的主要内容,如果未能解决你的问题,请参考以下文章
将 C# ASP.NET 数组传递给 Javascript 数组
将 C# ASP.NET 数组传递给 Javascript 数组