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