Problemas em enviar dados de uma página para outra

3 respostas
D
Pessoal tenho uma aplicação onde no momento possuo três telas, a primeira:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>

    <h1>JSP Page</h1>
        <form name="form1" method="post" action="Mostra_Resultado.jsp">
    <table>    
        <tr>    
            <td>Valor1:</td>
            <td><input type="text" name="valor1" size="10"></td>                   
            <td>Valor2:</td>
            <td><input type="text" name="valor2" size="10"></td>
            <td>Valor3:</td>
            <td><input type="text" name="valor3" size="10"></td>            
        </tr>            
    </table>
    <table>
            <td align=left><input type="submit" name="Submit" value="Calcular Resultado"></td>
        </form>       
    </table>    
    </body>
</html>
Nesta primeira tela eu informo os valores dentro de seus respectivos campos e clico em "Calcular Resultado" para que na outra tela, tela 2:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
    <h1>JSP Page</h1>    
    <%String valor1 = request.getParameter("valor1");
    String valor2 = request.getParameter("valor2");
    String valor3 = request.getParameter("valor3");

    double valor11 = Double.parseDouble(valor1);

    double valor21 = Double.parseDouble(valor2);

    double valor31 = Double.parseDouble(valor3);

    double resultado = (valor11 + valor21 + valor31);

    String resultado1 = String.valueOf(resultado);
%>           
    <form name="form1" method="post" action="Grava_Resultado.jsp">
    <table>    
        <tr>    
            <td>Valor1:</td>
            <td><input type="text" name="valor1" value="<%=valor1%>" size="10"></td>                   
            <td>Valor2:</td>
            <td><input type="text" name="valor2" value="<%=valor2%>" size="10"></td>
            <td>Valor3:</td>
            <td><input type="text" name="valor3" value="<%=valor3%>" size="10"></td>
            <%if (resultado1!=""){
                %>
                <td>Resultado:</td>
                <td><input type="text" name="resultado" value="<%=resultado1%>" size="10"></td>
           <% }%>
        </tr>            
    </table>
    <table>        
            <td align=left><input type="submit" name="Submit" value="Salvar Valores"></td>
        </form>
       <form name="form1" method="post" action="index.jsp">
            <td align=left><input type="submit" name="Submit" value="Voltar"></td>
        </form>
    </table>
    </body>
</html>
eu obtenha a resposta do cálculo destes valores. Acontece que caso o usuário queira ele pode retornar a tela anterior para refazer o cálculo, sendo que gostaria que ao fazer isto a tela fosse retornada com os valores preenchidos anteriormente na mesma, para que simplesmente ele possa alterar os que ele definir. Acontece que como já tenho um form que direciona os valores dos inputs para a terceira tela que gravará os resultados caso esta seja a opção do usuário. Quando ao invés de salvar tento voltar para a primeira tela, não consigo mandar os dados para capturar na mesma e preenchê-los. Gostaria de que se possível alguém me indicasse uma maneira de fazer isto.

3 Respostas

M

tu pode resolver isto num jsp só. Levando em consideração q tu tens um com.foo.MyBean com três atributos, valor, valor2 e valor3, as standard actions te ajudam:

<jsp:useBean id="myBean" class="com.foo.MyBean">
   <jsp:setProperty name="myBean" property="*">
<jsp:useBean/>

<input type="text" 
       name="valor1" 
       size="10" 
       value="<jsp:getAtribute name="myBean" property="valor1" />"/>

<input type="text" 
       name="valor2" 
       size="10" 
       value="<jsp:getAtribute name="myBean" property="valor2" />"/>

<input type="text" 
       name="valor2" 
       size="10" 
       value="<jsp:getAtribute name="myBean" property="valor2" />"/>
D

Obrigado pela ajuda matheus. :okok:

D
Pessoal, quanto ao problema anterior resolvi da seguinte maneira:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
    <%
    String valor1 = request.getParameter("valor1");
    String valor2 = request.getParameter("valor2");
    String valor3 = request.getParameter("valor3");
    %>

    <h1>JSP Page</h1>
        <form name="form1" method="post" action="index.jsp">
    <table>    
        <tr>    
            <td>Valor1:</td>
            <td><input type="text" name="valor1" value="<%=(valor1 == null )? "" : valor1%>" size="10"></td>                   
            <td>Valor2:</td>
            <td><input type="text" name="valor2" value="<%=(valor2 == null )? "" : valor2%>" size="10"></td>
            <td>Valor3:</td>
            <td><input type="text" name="valor3" value="<%=(valor3 == null )? "" : valor3%>" size="10"></td>            
        </tr>            
    </table>
    <table>
            <td align=left><input type="submit" name="Submit" value="Calcular Resultado"></td>
        </form>       
    </table> 
    <%
    if ((valor1 != null) || (valor2 != null) || (valor3 != null)){
    %>
   <form name="form1" method="post" action="Mostra_Resultado.jsp">
    <table>                    
            <td><input type="hidden" name="valor1" value="<%=valor1%>" size="10"></td>           
            <td><input type="hidden" name="valor2" value="<%=valor2%>" size="10"></td>
            <td><input type="hidden" name="valor3" value="<%=valor3%>" size="10"></td>
            <%

            String valores1 = new String("");
            if (valor1.equalsIgnoreCase("")){
                valores1="0";
            }
            else{
                valores1 = valor1;
            }

            String valores2 = new String("");
            if (valor2.equalsIgnoreCase("")){
                valores2="0";
            }
            else{
                valores2 = valor2;
            }

            String valores3 = new String("");
            if (valor3.equalsIgnoreCase("")){
                valores3="0";
            }
            else{
                valores3 = valor3;
            }

            double valor11 = Double.parseDouble(valores1);

            double valor21 = Double.parseDouble(valores2);

            double valor31 = Double.parseDouble(valores3);

            double resultado = (valor11 + valor21 + valor31);

            String resultado1 = String.valueOf(resultado);
            if (!("".equals(resultado1))){
                %>
                <td>Resultado:</td>
                <td><%=resultado1%></td>
           <% }
            %>
                    
    </table>
    <table>        
            <td align=left><input type="submit" name="Submit" value="Salvar Valores"></td>
        </form>
    </table>
    <%}%>
    </body>
</html>
Acontece que agora estou com um problema em um cadastro feito em JSP, no qual 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>
                        <td align=left colspan=1><input type='text' name='titulo' value="<%=(titulo == null )? "" : titulo%>" size='30'><font size='1'> </font></td>
                    
                        <td>Data Contato</td> 
                        <td><input type="text" name="datacontato" id="sel1" value="<%=(datacontato == null )? "" : datacontato%>" size="10"><input type="reset" value=" ... "
                        onclick="return showCalendar('sel1', '%Y/%m/%d', '24', true);"></td>                       
                </tr>                                    
                <tr>                     
                    <td align=left colspan=1>Texto:</td>
                    <td align=left colspan=1><textarea name="texto" cols="30" rows="6"></textarea></td>
                    <td align=left colspan=1>Meio:</td>
                    <td align=left colspan=1><select name="meio">
                        <option value="Almoço">Almoço</option>
                        <option value="Chat">Chat</option>
                        <option value="E-mail">E-mail</option>
                        <option value="Janta">Janta</option>
                        <option value="Reunião">Reunião</option>
                        <option value="Telefone">Telefone:</option>                                    
                        </select> 
                    </td>                    
                    <td align=left colspan=1>Aviso:</td>
                    <td align=left colspan=1><select name="aviso" onchange="somecampo()">
                        <option value="Sim">Sim</option>
                        <option value="Não">Não</option>                                                        
                        </select>
                    </td>
                </tr>
                <tr>
                    <td align=center colspan=1></td>
                    <td align=center colspan=1><font size = 2>Obs: máximo 1000 caracteres</td>                    
                </tr>                                               
                <tr>                    
                    <td align=left colspan=1>Data Aviso:</td> 
                    <td align=left colspan=1><input type="text" name="dataaviso" id="sel3" size="10"><input type="reset" value=" ... "
                    onclick="return showCalendar('sel3', '%Y/%m/%d', '24', true);"></td>                   
                    <td>Texto do Aviso:</td>
                    <td><textarea name="textoaviso" id="teste" cols="30" rows="6"></textarea></td></div>                   
                </tr>
                <tr>
                    <td align=center colspan=2></td>
                    <td align=center colspan=3><font size = 2>Obs: máximo 1000 caracteres</td> 
                </tr>
            </table>
            <br>
            <table border>                
                      <%if (participantes != null){%>
                      <tr>
                            <td align="center" colspan="1">Participantes:</td>                            
                      </tr>     
                            <%
                            String participante1 = new String("");
                            for ( int i = 0; i < participantes.length; i++ ){
                                participante1 += participantes[i];%>
                                <tr>
                                    <td align="center" colspan="1"><input type="text" 
                                    name="participantes" value="<%=participantes[i]%>"</td> 
                                </tr>
                                <%
                            }
                        }%>
            </table>
            <table>                
                        <td align=left><input type="submit" name="Submit" value="Salvar Movimento"></td>
                    </form>
                    <form name="form1" method="post" action="selecParticipantes.jsp">                            
                        <td align=left><input type="submit" name="Submit2" value="Participantes"><td>
                    </form>
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:
<html>
<body>
<b><center>Seleção de Participantes:</b>
    <table>
        <form name="form1" method="post" action="selecParticipantes.jsp?grupo=premium">
            <td align=left><input type="submit" name="Submit" value="Premium"><td>            
        </form>
        <form name="form1" method="post" action="selecParticipantes.jsp?grupo=bancos">
            <td align=left><input type="submit" name="Submit" value="Bancos"></td>
        </form>
        <form name="form1" method="post" action="selecParticipantes.jsp?grupo=advogados">
            <td align=left><input type="submit" name="Submit" value="Advogados"><td>
        </form>
        <form name="form1" method="post" action="selecParticipantes.jsp?grupo=auditoria">
            <td align=left><input type="submit" name="Submit" value="Auditoria"><td>
        </form>
        <form name="form1" method="post" action="selecParticipantes.jsp?grupo=consultoria">
            <td align=left><input type="submit" name="Submit" value="Consultoria"><td>
        </form>
        <form name="form1" method="post" action="selecParticipantes.jsp?grupo=todos">
            <td align=left><input type="submit" name="Submit" value="Todos"><td>
        </form>
        <form name="form1" method="post" action="cadMovimento.jsp?participantes">
            <td align=left><input type="submit" name="Submit" value="Voltar"><td>
        </form>
    </table>   
    
<%

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")){%>
    </p></p><center><b>Lista de Participantes da Premium</b></p>
	
<% 
}
if (grupo.equals("bancos")) {%>
    </p></p><center><b>Lista de Participantes do Grupo Bancos</b></p>
<%
}
if (grupo.equals("advogados")){%>
    </p></p><center><b>Lista de Participantes do Grupo Advogados</b></p>
<%
} 
if (grupo.equals("auditoria")){%>
    </p></p><center><b>Lista de Participantes do Grupo Auditoria</b></p>
<%
} 
if (grupo.equals("consultoria")){%>
    </p></p><center><b>Lista de Participantes do Grupo Consultoria</center></b></p>
<%
} 
if (grupo.equals("todos")) { %>
    </p></p><center><b>Lista de Todos os Participantes Cadastrados</b></p>
<%}
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);
                    %>
                    <form name="participantes" method="post" action="cadMovimento.jsp">
                        <td align=center><input type="checkbox" name="participantes" value="<%=nome%>"><%=nome%></td><p>
                    <%
                }
            }
        }

        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);
                    %>
                    <form name="participantes" method="post" action="cadMovimento.jsp">
                        <td align=center><input type="checkbox" name="participantes" value="<%=nome%>"><%=nome%></td><p>
                    <%
                }
            }
        }

        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);
                    %>
                    <form name="participantes" method="post" action="cadMovimento.jsp">
                        <td align=center><input type="checkbox" name="participantes" value="<%=nome%>"><%=nome%></td><p>
                    <%
                }
            }
        }

        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);
                    %>
                    <form name="participantes" method="post" action="cadMovimento.jsp">
                        <td align=center><input type="checkbox" name="participantes" value="<%=nome%>"><%=nome%></td><p>
                    <%
                }
            }
        }

        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);
                    %>
                    <form name="participantes" method="post" action="cadMovimento.jsp">
                        <td align=center><input type="checkbox" name="participantes" value="<%=nome%>"><%=nome%></td><p>
                    <%
                }
            }
        }

        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);
                    %>
                    <form name="participantes" method="post" action="cadMovimento.jsp">
                        <td align="left"><input type="checkbox" name="participantes" value="<%=nome%>"><%=nome%></td><p>                                            
                    <%
                }
            }
        }%>
                     <td><input type="hidden" name="titulo" value="<%=titulo%>" size="10"></td>
                     <td><input type="hidden" name="datacontato" value="<%=datacontato%>" size="10"></td>
                    <input type="submit" name="enviar" value="Enviar">
                </form>
        <table>
<%                    
}catch (Exception e) {
    out.println("Não foi possível conectar ao banco" + e.getMessage());
}
%>                    
</form>
</body>
</head>
</html>
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.
Criado 15 de julho de 2005
Ultima resposta 18 de jul. de 2005
Respostas 3
Participantes 2