Recuperar valores de uma página

5 respostas
D
Pessoal estou com um problema em um cadastro feito em JSP, acontece que tenho em uma página o seguinte código:
<form name="form1" method="post" action="confirma_cadMovimento.jsp?">
<table>            
                <tr>
<td align=left colspan=1>Titulo:</td>
                        &lt;td align=left colspan=1&gt;&lt;input type='text' name='titulo' value="&lt;%=(titulo == null )? "" : titulo%&gt;" size='30'><font size='1'>&nbsp;</font>&lt;/td&gt;
                    
                        &lt;td&gt;Data Contato&lt;/td&gt; 
                        &lt;td&gt;&lt;input type="text" name="datacontato" id="sel1" value="&lt;%=(datacontato == null )? "" : datacontato%&gt;" size="10">&lt;input type="reset" value=" ... "
                        onclick="return showCalendar('sel1', '%Y/%m/%d', '24', true);"&gt;&lt;/td&gt;                       
                &lt;/tr&gt;                                    
                &lt;tr&gt;                     
                    &lt;td align=left colspan=1&gt;Texto:&lt;/td&gt;
                    &lt;td align=left colspan=1&gt;&lt;textarea name="texto" cols="30" rows="6"&gt;&lt;/textarea&gt;&lt;/td&gt;
                    &lt;td align=left colspan=1&gt;Meio:&lt;/td&gt;
                    &lt;td align=left colspan=1&gt;&lt;select name="meio"&gt;
                        &lt;option value="Almoço"&gt;Almoço&lt;/option&gt;
                        &lt;option value="Chat"&gt;Chat&lt;/option&gt;
                        &lt;option value="E-mail"&gt;E-mail&lt;/option&gt;
                        &lt;option value="Janta"&gt;Janta&lt;/option&gt;
                        &lt;option value="Reunião"&gt;Reunião&lt;/option&gt;
                        &lt;option value="Telefone"&gt;Telefone:&lt;/option&gt;                                    
                        &lt;/select&gt; 
                    &lt;/td&gt;                    
                    &lt;td align=left colspan=1&gt;Aviso:&lt;/td&gt;
                    &lt;td align=left colspan=1&gt;&lt;select name="aviso" onchange="somecampo()"&gt;
                        &lt;option value="Sim"&gt;Sim&lt;/option&gt;
                        &lt;option value="Não"&gt;Não&lt;/option&gt;                                                        
                        &lt;/select&gt;
                    &lt;/td&gt;
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td align=center colspan=1&gt;&lt;/td&gt;
                    &lt;td align=center colspan=1&gt;<font size = 2>Obs: máximo 1000 caracteres&lt;/td&gt;                    
                &lt;/tr&gt;                                               
                &lt;tr&gt;                    
                    &lt;td align=left colspan=1&gt;Data Aviso:&lt;/td&gt; 
                    &lt;td align=left colspan=1&gt;&lt;input type="text" name="dataaviso" id="sel3" size="10"&gt;&lt;input type="reset" value=" ... "
                    onclick="return showCalendar('sel3', '%Y/%m/%d', '24', true);"&gt;&lt;/td&gt;                   
                    &lt;td&gt;Texto do Aviso:&lt;/td&gt;
                    &lt;td&gt;&lt;textarea name="textoaviso" id="teste" cols="30" rows="6"&gt;&lt;/textarea&gt;&lt;/td&gt;&lt;/div&gt;                   
                &lt;/tr&gt;
                &lt;tr&gt;
                    &lt;td align=center colspan=2&gt;&lt;/td&gt;
                    &lt;td align=center colspan=3&gt;<font size = 2>Obs: máximo 1000 caracteres&lt;/td&gt; 
                &lt;/tr&gt;
            &lt;/table&gt;
            <br>
            &lt;table border&gt;                
                      &lt;%if (participantes != null){%&gt;
                      &lt;tr&gt;
                            &lt;td align="center" colspan="1"&gt;Participantes:&lt;/td&gt;                            
                      &lt;/tr&gt;     
                            &lt;%
                            String participante1 = new String("");
                            for ( int i = 0; i &lt; participantes.length; i++ ){
                                participante1 += participantes[i];%&gt;
                                &lt;tr&gt;
                                    &lt;td align="center" colspan="1"&gt;&lt;input type="text" 
                                    name="participantes" value="&lt;%=participantes[i]%&gt;"&gt;&lt;/td&gt; 
                                &lt;/tr&gt;
                                &lt;%
                            }
                        }%&gt;
            &lt;/table&gt;
            &lt;table&gt;                
                        &lt;td align=left&gt;&lt;input type="submit" name="Submit" value="Salvar Movimento"&gt;&lt;/td&gt;
                    &lt;/form&gt;
                    &lt;form name="form1" method="post" action="selecParticipantes.jsp"&gt;                            
                        &lt;td align=left&gt;&lt;input type="submit" name="Submit2" value="Participantes"&gt;&lt;td&gt;
                    &lt;/form&gt;
Nesta página eu preencho o cadastro de movimento, só que caso eu queira inserir um participante para este movimento eu tenho o seguinte código em outra tela:
&lt;html&gt;
&lt;body&gt;
<b>&lt;center&gt;Seleção de Participantes:</b>
    &lt;table&gt;
        &lt;form name="form1" method="post" action="selecParticipantes.jsp?grupo=premium"&gt;
            &lt;td align=left&gt;&lt;input type="submit" name="Submit" value="Premium"&gt;&lt;td&gt;            
        &lt;/form&gt;
        &lt;form name="form1" method="post" action="selecParticipantes.jsp?grupo=bancos"&gt;
            &lt;td align=left&gt;&lt;input type="submit" name="Submit" value="Bancos"&gt;&lt;/td&gt;
        &lt;/form&gt;
        &lt;form name="form1" method="post" action="selecParticipantes.jsp?grupo=advogados"&gt;
            &lt;td align=left&gt;&lt;input type="submit" name="Submit" value="Advogados"&gt;&lt;td&gt;
        &lt;/form&gt;
        &lt;form name="form1" method="post" action="selecParticipantes.jsp?grupo=auditoria"&gt;
            &lt;td align=left&gt;&lt;input type="submit" name="Submit" value="Auditoria"&gt;&lt;td&gt;
        &lt;/form&gt;
        &lt;form name="form1" method="post" action="selecParticipantes.jsp?grupo=consultoria"&gt;
            &lt;td align=left&gt;&lt;input type="submit" name="Submit" value="Consultoria"&gt;&lt;td&gt;
        &lt;/form&gt;
        &lt;form name="form1" method="post" action="selecParticipantes.jsp?grupo=todos"&gt;
            &lt;td align=left&gt;&lt;input type="submit" name="Submit" value="Todos"&gt;&lt;td&gt;
        &lt;/form&gt;
        &lt;form name="form1" method="post" action="cadMovimento.jsp?participantes"&gt;
            &lt;td align=left&gt;&lt;input type="submit" name="Submit" value="Voltar"&gt;&lt;td&gt;
        &lt;/form&gt;
    &lt;/table&gt;   
    
&lt;%

String grupo = request.getParameter("grupo");
String titulo = request.getParameter("titulo");
String datacontato = request.getParameter("datacontato");
String meio = request.getParameter("meio");
String texto = request.getParameter("texto");
String aviso = request.getParameter("aviso");
String textoaviso = request.getParameter("textoaviso");
String dataaviso = request.getParameter("dataaviso");
out.println(datacontato);

int cont = 0;

Conexao conexao = new Conexao();
Connection conn = null;
conn = conexao.getConnection();

Connection conn2 = null;    
conn2 = conexao.getConnection();

String SQL = "";
String SQL2 = "";

if (grupo == null) 
    grupo = "todos";

if (grupo.equals("premium")){%&gt;
    </p></p>&lt;center&gt;<b>Lista de Participantes da Premium</b></p>
	
&lt;% 
}
if (grupo.equals("bancos")) {%&gt;
    </p></p>&lt;center&gt;<b>Lista de Participantes do Grupo Bancos</b></p>
&lt;%
}
if (grupo.equals("advogados")){%&gt;
    </p></p>&lt;center&gt;<b>Lista de Participantes do Grupo Advogados</b></p>
&lt;%
} 
if (grupo.equals("auditoria")){%&gt;
    </p></p>&lt;center&gt;<b>Lista de Participantes do Grupo Auditoria</b></p>
&lt;%
} 
if (grupo.equals("consultoria")){%&gt;
    </p></p>&lt;center&gt;<b>Lista de Participantes do Grupo Consultoria&lt;/center&gt;</b></p>
&lt;%
} 
if (grupo.equals("todos")) { %&gt;
    </p></p>&lt;center&gt;<b>Lista de Todos os Participantes Cadastrados</b></p>
&lt;%}
try {
        if (grupo.equalsIgnoreCase("premium")) {
            SQL  = "SELECT * from grupo where tipogrupo = 'premium'";

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(SQL);
            while (rs.next()){
                String id = rs.getString(1);

                SQL2  = "SELECT * from contato where codgrupo = '"+id+"'";
                Statement stmt2 = conn2.createStatement();
                ResultSet rs2 = stmt2.executeQuery(SQL2);

                while (rs2.next()){
                    String nome = rs2.getString(4);
                    %&gt;
                    &lt;form name="participantes" method="post" action="cadMovimento.jsp"&gt;
                        &lt;td align=center&gt;&lt;input type="checkbox" name="participantes" value="&lt;%=nome%&gt;"&gt;&lt;%=nome%&gt;&lt;/td&gt;<p>
                    &lt;%
                }
            }
        }

        if (grupo.equalsIgnoreCase("bancos")) {
            SQL  = "SELECT * from grupo where tipogrupo = 'bancos'";

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(SQL);
            while (rs.next()){
                String id = rs.getString(1);

                SQL2  = "SELECT * from contato where codgrupo = '"+id+"'";
                Statement stmt2 = conn2.createStatement();
                ResultSet rs2 = stmt2.executeQuery(SQL2);

                while (rs2.next()){
                    String nome = rs2.getString(4);
                    %&gt;
                    &lt;form name="participantes" method="post" action="cadMovimento.jsp"&gt;
                        &lt;td align=center&gt;&lt;input type="checkbox" name="participantes" value="&lt;%=nome%&gt;"&gt;&lt;%=nome%&gt;&lt;/td&gt;<p>
                    &lt;%
                }
            }
        }

        if (grupo.equalsIgnoreCase("advogados")) {
            SQL  = "SELECT * from grupo where tipogrupo = 'advogados'";

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(SQL);
            while (rs.next()){
                String id = rs.getString(1);

                SQL2  = "SELECT * from contato where codgrupo = '"+id+"'";
                Statement stmt2 = conn2.createStatement();
                ResultSet rs2 = stmt2.executeQuery(SQL2);

                while (rs2.next()){
                    String nome = rs2.getString(4);
                    %&gt;
                    &lt;form name="participantes" method="post" action="cadMovimento.jsp"&gt;
                        &lt;td align=center&gt;&lt;input type="checkbox" name="participantes" value="&lt;%=nome%&gt;"&gt;&lt;%=nome%&gt;&lt;/td&gt;<p>
                    &lt;%
                }
            }
        }

        if (grupo.equalsIgnoreCase("auditoria")) {
            SQL  = "SELECT * from grupo where tipogrupo = 'auditoria'";

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(SQL);
            while (rs.next()){
                String id = rs.getString(1);

                SQL2  = "SELECT * from contato where codgrupo = '"+id+"'";
                Statement stmt2 = conn2.createStatement();
                ResultSet rs2 = stmt2.executeQuery(SQL2);

                while (rs2.next()){
                    String nome = rs2.getString(4);
                    %&gt;
                    &lt;form name="participantes" method="post" action="cadMovimento.jsp"&gt;
                        &lt;td align=center&gt;&lt;input type="checkbox" name="participantes" value="&lt;%=nome%&gt;"&gt;&lt;%=nome%&gt;&lt;/td&gt;<p>
                    &lt;%
                }
            }
        }

        if (grupo.equalsIgnoreCase("consultoria")) {
            SQL  = "SELECT * from grupo where tipogrupo = 'consultoria'";

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(SQL);
            while (rs.next()){
                String id = rs.getString(1);

                SQL2  = "SELECT * from contato where codgrupo = '"+id+"'";
                Statement stmt2 = conn2.createStatement();
                ResultSet rs2 = stmt2.executeQuery(SQL2);

                while (rs2.next()){
                    String nome = rs2.getString(4);
                    %&gt;
                    &lt;form name="participantes" method="post" action="cadMovimento.jsp"&gt;
                        &lt;td align=center&gt;&lt;input type="checkbox" name="participantes" value="&lt;%=nome%&gt;"&gt;&lt;%=nome%&gt;&lt;/td&gt;<p>
                    &lt;%
                }
            }
        }

        if (grupo.equalsIgnoreCase("todos")) {
            SQL  = "SELECT * from grupo";

            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(SQL);
            while (rs.next()){
                String id = rs.getString(1);

                SQL2  = "SELECT * from contato where codgrupo = '"+id+"'";
                Statement stmt2 = conn2.createStatement();
                ResultSet rs2 = stmt2.executeQuery(SQL2);

                while (rs2.next()){
                    String nome = rs2.getString(4);
                    %&gt;
                    &lt;form name="participantes" method="post" action="cadMovimento.jsp"&gt;
                        &lt;td align="left"&gt;&lt;input type="checkbox" name="participantes" value="&lt;%=nome%&gt;"&gt;&lt;%=nome%&gt;&lt;/td&gt;<p>                                            
                    &lt;%
                }
            }
        }%&gt;
                     &lt;td&gt;&lt;input type="hidden" name="titulo" value="&lt;%=titulo%&gt;" size="10"&gt;&lt;/td&gt;
                     &lt;td&gt;&lt;input type="hidden" name="datacontato" value="&lt;%=datacontato%&gt;" size="10"&gt;&lt;/td&gt;
                    &lt;input type="submit" name="enviar" value="Enviar"&gt;
                &lt;/form&gt;
        &lt;table&gt;
&lt;%                    
}catch (Exception e) {
    out.println("Não foi possível conectar ao banco" + e.getMessage());
}
%&gt;                    
&lt;/form&gt;
&lt;/body&gt;
&lt;/head&gt;
&lt;/html&gt;
Nesta página eu seleciono o participante e ao clicar em "Enviar" retorno a página anterior com os nomes dos participantes selecionados, só que neste momento, os dados preenchidos anteriormente nesta página de cadastro são perdidos. Gostaria de ver se alguém poderia me indicar como fazer para ao retornar a esta página de cadastro, os registros preenchidos na mesma não sejam apagados.

5 Respostas

javaboy

Não sei se entendi muito bem o que vc queria mas creio eu que.

Se você der um submit da página de participantes com o action do form para a pagina do movimento, você consegue pegar os valores via request.getParametervalues(“nome do checkbox”); vai te retornar todos os selecionados, ai você so tem que tratar a string, etc etc etc.

se você quiser adicionar todos de uma vez, coloque um array ou colection na session e quando voltar a outra página vc recupera e retira o objeto da sessão.

Seria isso que você quer?

valeu!!

(primeiro post de tentativa de ajuda - aeeeee)

D

Valeu pela ajuda javaboy, mas na verdade o problema de recuperar os participantes selecionados eu já havia resolvido. Minha dúvida é quanto ao que havia sido preenchido no cadastro, pois se eu já tiver preenchido algo nesta tela de cadastro e logo após isto eu resolva inserir algum participante, eu clico em Participantes e vou para a tela onde seleciono os mesmos através de um checkbox, após selecioná-los eu clico em enviar e volto para a tela de cadastro com os meus respectivos participantes, só que neste momento, eu perco todos os campos preenchidos do cadastro. Então gostaria de ver se alguém poderia me ajudar a resolver isto, fazendo com que ao retornar a tela de cadastro eu não perca os dados preenchidos na mesma. Obrigado!

jesley.sena

Eaê Douglas, seu código está um pouco poluído.

Aos invés de fazer a conexão com o banco na JSP, acredito que melhor seria transferir isso para um servlet, e procurar manter o desenvolvimento me 03 camadas - MVC.
Dessa forma fica mais fácil debugar o código.
1 abraço,

Jesley.Sena

dark.wizzard

Bom dia!

Bem, me passou pela cabeça que você podia tentar usar uma HashTable para guardar os valores que foram gravados nos campos e ficar transitando com ela de uma página pra outra…

Aí tu testa pra ver se existe alguma HashTable criada e recupera os valores inseridos nela em seus respectivos campos…

Pode não ser a solução mais elegante, mas é só uma idéia…

Cheers,

javaboy

Kara,

Entendi… a solução que eu vejo é um objeto de sessão… toda vez que submeter guarda um objeto na sessão com os campos do form… quando retornar… recupera o valor e REMOVE o objeto, sendo assim, não precisa ficar passando hash na string da página, o que pode ser um problema dependendo do tamanho da informação que vc pode passar, isso pq, o campo de endereço tem limite de caracteres.

Então faz o seguinte:

Declara no JSP as variáveis relativas aos campos e no value dos inputs vc referencia essas variáveis. No ínico da pagina vc resgata ela do objeto da sessão e REMOVE o Objeto (pq em um acesso de muitos usuários isso vai consumir a memoria do seu servidor).

Dá até para construir uma função tipo IsNull(string) que retorna string vazia se é nulo senão retorna a string.trim();

Bem isso é uma idéia (utilizei isso para passar dados dos servlets para jsp) deve funcionar para seu caso também.

Att,
JavaBoy - iniciante

Criado 18 de julho de 2005
Ultima resposta 19 de jul. de 2005
Respostas 5
Participantes 4