2014-09-03 4 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

Если я не ошибаюсь, вам не нужно использовать «[]» после имени параметра. –

ответ

0

это браузерное приложение. содержимое страницы не будет автоматически обновляться, если вы не используете какую-либо технологию, например ajax, которая может извлекать значения из вашей базы данных без повторного выполнения кода jsp.

вы используете этот URL

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

так я предполагаю, что вы используете скриптлет.

<% 
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" 

и в вашем сервлет/контроллера:

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

в методе doPost() или в вашей функции (если вы используете весной)

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 = request.getRequestDispatcher ("/ PTEMain.jsp"); \t dispatcher.forward (запрос, ответ); –

+0

, в этом случае вам нужно поместить его в сеанс. потому что вы не отправляете запрос на другую страницу, то есть он будет по-прежнему нулевым. –

+0

, так как вы отправляете его из разных приложений. второе приложение не срабатывает. позвольте мне привести вам пример, если вы отправляете данные во 2-м приложении, он не открывает автоматически второе приложение. –

Смежные вопросы