Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串数组从javascript传递到jsp_Java_Javascript_Jquery_Ajax_Jsp - Fatal编程技术网

将字符串数组从javascript传递到jsp

将字符串数组从javascript传递到jsp,java,javascript,jquery,ajax,jsp,Java,Javascript,Jquery,Ajax,Jsp,我在谷歌上搜索了很多,但我不能解决我的问题。我是jsp新手,在主jsp中的应用程序中,我通过javascript中的scriptlet从表中检索字符串数组(公文包项)。我必须将数组发布到另一个jsp,并作为参数传递到java方法中,以计算一些portfolio统计数据(历史数据存储在src目录中)。我写的代码是: //obj is the array var obj= $('#tablePtf td:nth-child(1)').map(function(response){

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

    //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):

这会导致“r”上出现NullPointerException,因此我发布数组是错误的。“obj”数组不是空的(已测试)。 我还尝试动态编写隐藏输入,将“name”属性设置为“portfolio”并提交表单,但异常依然存在。
我错在哪里?关于更好的解决方案的建议被广泛接受。谢谢

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

var obj=$('#tablePtf td:nth-child(1)').text();
现在,它的工作方式与aspected相同。

您刚才说的。。“obj”数组不是空的(已测试)”?是的,我在错误函数中使用“alert(obj)”进行了测试,它返回了项目集。我不确定,因为我是新手,但“map”方法似乎返回一个字符串,其中的项目用逗号分隔。也许它需要分裂,但我很幸运,找到了解决办法。谢谢你的关注。
var obj=$('#tablePtf td:nth-child(1)').text();