Redirecionar página para nova janela

1 resposta
S

Bom dia pessoal, estou com um probleminha.

Quero abrir minha página jsp em uma nova janela. Para isto eu usei o response e o javascript.

String strJavaScript = "<script language\"javascript\"> window.open( .....);</script>";
   response.getWriter().println(strJavaScript);

Com este comando ele abre a minha página em uma nova janela, o problema que ao fazer isto ele perde a página que solicitou a abertura.
Eu tenho uma tela que faz uma consulta e esta tela manda o resultado abrir em uma nova janela. Quando eu uso o comando acima o resultado da consulta abre em uma nova janela, mas a tela da consulta desaparece, fica em branco. Quero que ao mostrar o resultado, a tela da consulta esteja disponível para fazer uma nova consulta.

Se alguém souber como resolver isto eu agradeço.

Sheila

1 Resposta

S

Creio que o problema está em setar o conteúdo de resposta inteiro com a String. Ou seja, quando o response é renderizado, apenas o comando da string vai ser aberto, mais nada.
Eu recomendo você colocar essa função na propriedade ‘onclick’ do botão de submit do seu formulário, assim, a página abre sem enviar um request. O problema é que não enviando um request, não vai parâmetros para lá. Então você deve tratar a String de comando para receber os parâmetros.
Mais ou menos fica assim:

//código do html
<input type="button" action="" onclick="abreSolucao();">
//código do javascript
function abreSolucao(){
var paginaComParametros = new String();
  var parametros= new Array();
  parametros[1] = input1.getvalue();
  parametros[2] = input2.getvalue();
  .
  .
  .
  
  for(int i = 0;  i < parametros.lenght ; i++){
       paginaComParametros = paginaComParametros + "?" + nomeVariavel + "=" + parametros[i];
 }
//aqui abre a página
 window.open("minhapagina.jsp" + paginaComParametros);
}

Aí vai mandar os parâmetros com os nomes certinhos, e lá na sua página de solução, onde tiver a funcao reqeust.getParameter("nomedoparametro"), vai vir os parametros ali.

Compreende?!

Criado 22 de fevereiro de 2008
Ultima resposta 22 de fev. de 2008
Respostas 1
Participantes 2