我想从我的应用程序向另一个应用程序发送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中进行任何映射。请帮忙
答案 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);
}