2014-09-03 136 views
0

我想从我的应用程序发送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我收到空。我必须在web.xml中做任何映射吗?请帮助

+0

如果我没有错,那么你不需要在参数名称后面使用“[]”。 – 2014-09-03 04:58:48

回答

0

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

您使用此URL

"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字段来检查数据是否到达目的地。

的URL可以是这样的:

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

,并在你的servlet /控制器:

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); 
    } 
+0

我可以只使用request.setAttribute(“guveArray”,arr1);并像这样调度RequestDispatcher dispatcher = request.getRequestDispatcher(“/ PTEMain.jsp”); \t dispatcher.forward(request,response); – 2014-09-03 05:36:57

+0

在这种情况下,您需要将其放入会话中。因为您没有将请求分派到其他页面,这意味着它仍然为空。由于您是从其他应用程序发送的,因此请使用 – 2014-09-03 05:37:55

+0

。第二个应用程序不会触发自己。让我举个例子,如果你在第二个应用程序中发送数据,它不会自动打开第二个应用程序。 – 2014-09-03 05:40:13

相关问题