2014-10-04 101 views
-1

我搜索了很多,但我无法解决我的问题。我是jsp新手,在我的主jsp应用程序中,我通过javascript中的scriptlet从表中检索了一个字符串数组(项目组合)。我必须将数组发布到另一个jsp,并将其作为参数传递给java方法以计算一些投资组合统计数据(历史数据存储在src目录中)。我写的代码是:从javascript传递字符串数组到jsp

//obj is the array 
    var obj= $('#tablePtf td:nth-child(1)').map(function(response){ 
     return $(this).text(); 
    }).get(); 

    //POST 
    $.ajax({ 
     type: "POST", 
     url: "calculatePtf.jsp", 
     data: {portfolio:obj}, 
     success: function(){ 
      alert('ok'); 
     }, 
     error: function(){ 
      alert('error'); 
     } 
    }); 

在服务器端(caluclatePtf.jsp):

String[]r=request.getParameterValues("portfolio"); 
calculate(r);// my method 

这会导致 'R' 的NullPointerException异常,所以我错了,在张贴的阵列。 'obj'数组不是空的(测试)。 我也尝试动态编写隐藏的输入,将'name'属性设置为'portfolio'并提交表单,但异常仍然存在。 我错在哪里?为更好的解决方案提出的建议已被广泛接受。谢谢

回答

0

解决了,问题不是POST,而是检索obj数组的起始函数。刚刚更改:

var obj=$('#tablePtf td:nth-child(1)').text(); 

现在按照预期工作。

+0

你在说.. *“'obj'数组不是空的(测试)”* ..? – 2014-10-04 18:16:18

+0

是的,我在错误函数中使用'alert(obj)'进行了测试,并返回了一组项目。我不确定,因为我是新手,但'地图'方法似乎返回一个单独的字符串,并用逗号分隔项目。也许它需要分裂,但我很幸运,找到了解决方案。感谢您的关注。 – ttrash 2014-10-04 18:25:18