将数组从一个应用程序发送到另一个应用程序

时间:2014-09-03 03:44:03

标签: jsp

我想从我的应用程序向另一个应用程序发送2个数组。 我使用以下代码

$.ajax({
    url:"http://bdln2459:50000/pg.com~prf~scprf~dc_pte_sbuyer/PTEMain.jsp",
    type:"post",
    data: {"guvArray":guvArray,"vendorCodeArray":vendorCodeArray}
success: function(){
    alert("success");                             
}

});

我正在接受其他应用程序jsp PTEMain.jsp,如下所示

String[] arr1= request.getParameterValues("guvArray[]");
String[] arr2= request.getParameterValues("vendorCodeArray[]");

当我尝试打印这些arr1和arr2时,我得到了null。我必须在web.xml中进行任何映射。请帮忙

1 个答案:

答案 0 :(得分:0)

这些是基于浏览器的应用程序。除非您使用ajax等可以从数据库中检索值而不重新执行jsp代码的技术,否则页面内容不会自动更新。

您正在使用此网址

"http://bdln2459:50000/pg.com~prf~scprf~dc_pte_sbuyer/PTEMain.jsp"

所以我假设你正在使用scriptlet。

<%
String[] arr1= request.getParameterValues("guvArray[]");
String[] arr2= request.getParameterValues("vendorCodeArray[]");
%>

所以jsp页面中发生了什么。在它执行jsp页面中的所有代码之后,它就完成了。除非你刷新页面。

我认为可以帮助实现您想要的一种方法是将数据发送到您的控制器,在您的控制器中尝试将其保存在存储库(可能是数据库)或其他类型的存储库中,或仅用于调试目的使用static字段只是为了检查数据是否到达目的地。

网址可以是这样的:

"http://bdln2459:50000/pg.com~prf~scprf~dc_pte_sbuyer/servlet url mapping/servlet name"

并在你的servlet / controller中:

static String[] arr1;
static String[] arr2;

在你的doPost方法()或你的函数中(如果你正在使用spring)

public void receiveData(HttpServletRequest request,HttpServletResponse response){

    arr1= (String[])request.getParameterValues("guvArray[]");
    arr2= (String[])request.getParameterValues("vendorCodeArray[]");

    request.getSession().setAttribute("guveArray[]",arr1);
    request.getSession().setAttribute("vendorCodeArray[]",arr2);
}

如果您将使用发送

public void receiveData(HttpServletRequest request,HttpServletResponse response){

        String[] arr1 arr1= (String[])request.getParameterValues("guvArray[]");
        String[] arr2= (String[])request.getParameterValues("vendorCodeArray[]");

        request.setAttribute("guveArray[]",arr1);
        request.setAttribute("vendorCodeArray[]",arr2);

        request.getRequestDispatcher("jsp page").forward(request, response);
    }