как передать действие сервлета в функцию перенаправления в javascript

#java #javascript #jsp #servlets

#java #javascript #jsp #сервлеты

Вопрос:

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

 function UpdatePannel()
{
var selectedIds;
var count=0;
for (i=0; i<document.frm1.check1.length; i  )
{
if (document.frm1.check1[i].checked==true)
{
if(count==0){
selectedIds=document.frm1.check1[i].value; 
count=count 1; 
}
else
selectedIds=selectedIds "," document.frm1.check1[i].value;
}
}
alert(selectedIds);  

//document.frm1.action="<%=contextPath%>/AddInterviewPannel?ids=" selectedIds;
//window.close()
     //   document.frm1.submit();

     redirect();
} 

function redirect()
{
opener.location.href="<%=contextPath%>/AddInterviewPannel?ids=" selectedIds;
window.close()
}
  

Комментарии:

1. не могли бы вы, пожалуйста, пояснить, что это не работает?

2. мне нужно передать следующее действие сервлета из всплывающего окна и закрыть окно, как я могу это сделать <%=ContextPath%>/AddInterviewPannel?ids=» selectedIds

3. Не могли бы вы, пожалуйста, проверить мой ответ ниже?

4. да, я проверил это при непосредственном вызове другого jsp-файла, но я хочу вызвать действие сервлета

5. тогда просто URL был бы другим, просто укажите URL сервлета

Ответ №1:

Поместите этот javascript в родительское окно. вызовите эту функцию javascript redirect в родительской функции с параметром, который необходимо передать как redirect(selectedIds)

обновите перенаправление функции javascript, чтобы принять параметр

 function redirect(selectedIds){
    opener.location.href="<%=contextPath%>/AddInterviewPannel?ids=" selectedIds;
    popupobj.close() // popupobj => have the reference to popup , initialize this with return value of window.open
}
  

Комментарии:

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

2. вызовите функцию перенаправления (selectedIds), используя объект opener, подобный opener.redirect(selectedIds) . Таким образом, вы можете передать значение в javascript в родительском окне.

Ответ №2:

popup.html

 <html> 
<head> 
</head> 
<body> 
<a href="#" onclick="window.opener.location.href='new.htm';">change parent</a> 
</body> 
</html>
  

parent.html

 <html> 
<head> 
</head> 
<body> 
<a href="#" onclick="window.open('popup.html','kid','resizable=no,scrollbars=no,width=250,height=148,toolbar=no');">click</a> 
</body> 
</html>
  

У меня все работает нормально .. Сравните ваш код и выясните причину.