Foros del Web » Programación para mayores de 30 ;) » Java »

pasar datos a jsp

Estas en el tema de pasar datos a jsp en el foro de Java en Foros del Web. Hola, tengo un problema al pasar datos a una página jsp, quiero pasar una variable con un formulario hidden pero no me lo coge. En ...
  #1 (permalink)  
Antiguo 03/04/2009, 03:34
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
pasar datos a jsp

Hola, tengo un problema al pasar datos a una página jsp, quiero pasar una variable con un formulario hidden pero no me lo coge. En el servlet primero, pongo:

<%
String confkey="";
if (request.getParameter("key")!=null)
{
confkey=request.getParameter("key");
}
else
{
confkey = (String)request.getAttribute("key");
}
%>

porque esta página jsp debe poder coger el valor de key o bien de una pagina jsp o bien de un servlet, y después:

...
<form name="formularioclientes">

<tr><td height="30" align="center" valign="middle" >Por favor, seleccione la opcion deseada:</td></tr>
</br>
<input type="hidden" name="key" value="<%=confkey %>" />
</br>
<tr><td height="30" align="center" valign="middle">
<input type="button" name="Empleados" value=" 0. Opciones administrativas (solo empleados)" style="width:300px;text-align:left"
onclick="location=' ... '"/>
...
</form>

Y en el segundo jsp pongo:

<%
String confkey="";
if (request.getParameter("key")!=null)
{
confkey=request.getParameter("key");
}
%>

para coger ese dato de la primera pagina jsp. El caso es que la primera si tiene la clave key, pero la segunda no lo coge. ¿Podéis decirme dónde está el fallo? Tengo otras páginas jsp que cogen variables de páginas jsp, y lo tengo así y me funciona, no comprendo dónde está el error.
Muchas gracias, un saludo
  #2 (permalink)  
Antiguo 03/04/2009, 04:59
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: pasar datos a jsp

Wenas

onclick="location..."

No sera que no se lo estas pasando?? tienes location.href="tusegunda.jsp?key="+document.formul arioclientes.key.value;

O simplemente location.href="tusegunda.jsp"; porque si es la segunda, NO SE LO ESTAS PASANDO.

De todos modos, creo yo que es mas facil mandar el formulario en vez de tanta historia.
Código:
<form name="formularioclientes" action="tusegunda.jsp" method="post">

blableblublublibla
<input type="button" name="empleados" onclick="document.formularioclientes.submit()">
Saludos.
  #3 (permalink)  
Antiguo 03/04/2009, 08:35
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: pasar datos a jsp

Hola, realmente la primera jsp tiene un montón de botones, y cada uno redirecciona a un sitio, por eso no puedo poner el action en el formulario. De ahí lo de location. El código es el siguiente:


<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MenuClientes</title>
<style type="text/css">
<!--
body {
height: 100%;
width: 100%;
position: absolute;
vertical-align: middle;
margin: auto;
}
-->
</style></head>

<body bgcolor="#99FFFF">

<table width="100%" height="100%" align="center" cellpading="0">
<tr> <td align="center" valign="middle">

<%
String confkey="";
if (request.getParameter("key")!=null)
{
confkey=request.getParameter("key");
}
else
{
confkey = (String)request.getAttribute("key");
}
%>

<table width="100%" height="100%" align="center" valign="middle">
<form name="formularioclientes">

</br>
<input type="text" value="<%out.println(confkey); %>" />
</br>

<tr><td height="30" align="center" valign="middle" >Por favor, seleccione la opcion deseada:</td></tr>
</br>
<input type="hidden" name="key" value="<%=confkey %>" />
</br>
<tr><td height="30" align="center" valign="middle">
<input type="button" name="Empleados" value=" 0. Opciones administrativas (solo empleados)" style="width:300px;text-align:left"
onclick="location=' ... '"/>
</td></tr>
<tr><td height="30" align="center" valign="middle">
<input type="button" name="OperacionesBancarias" value=" 1. Consultar ultimas operaciones bancarias" style="width:300px;text-align:left"
onclick="location=' ... '"/>
</td></tr>
<tr><td height="30" align="center" valign="middle">
<input type="button" name="ConsultarSaldo" value=" 2. Consultar saldo en cuenta" style="width:300px;text-align:left"
onclick="location=' ... '"/>
</td></tr>
<tr><td height="30" align="center" valign="middle">
<input type="button" name="IngresarEfectivo" value="3. Ingresar efectivo en cuenta" style="width:300px;text-align:left"
onclick="location=' ... '"/>
</td></tr>
<tr><td height="30" align="center" valign="middle">
<input type="button" name="SacarEfectivo" value=" 4. Sacar efectivo de mi cuenta" style="width:300px;text-align:left"
onclick="location=' ... '"/>
</td></tr>
<tr><td height="30" align="center" valign="middle">
<input type="button" align="center" name="OpcionesTelefonia" value=" 5. Opciones de telefonia movil" style="width:300px;text-align:left"
onclick="location=' ... ''"/>
</td></tr>
<tr><td height="30" align="center" valign="middle">
<input type="button" align="center" name="Salir" value=" 6. Salir del menu principal" style="width:300px;text-align:left"
onclick="location=' ... '"/>
</td></tr>
</form>
</table>
</td>
</tr>
</table>
</body>
</html>

Haciendo lo de location, con el resto de botones sí se me reenvía donde debe, y de hecho con el botón "OpcionesTelefonia" también, lo único malo es que no me coge el valor de key en la segunda página web. He probado a poner lo que me dices :

...
<input type="button" align="center" name="OpcionesTelefonia" value=" 5. Opciones de telefonia movil" style="width:300px;text-align:left"
onclick="location='segunda.jsp?key="+document.form ularioclientes.key.value;'"/>
...

pero eclipse no me lo permite, me sale el siguiente error:

Undefined attribute name (document.formularioclientes.key.value).

Yo solo quiero poder pasar el valor de key, pensaba que al meterlo dentro del formulario como hidden, bastaría con recogerlo en la siguiente pagina jsp. ¿Sábes de alguna otra manera? Muchas gracias, un saludo
  #4 (permalink)  
Antiguo 06/04/2009, 02:24
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: pasar datos a jsp

Prueba con esto
En tu fichero js
Código:
function opcionestelefonia()
{
    var formu = document.form ularioclientes;
    var oldAction = formu.action;
    formu.action = "segunda.jsp";
    formu.submit();
    formu.action = oldAction;
}
Código:
<input type="button" align="center" name="OpcionesTelefonia" value=" 5. Opciones de telefonia movil" style="width:300px;text-align:left"
onclick="opcionestelefonia()"/>
Si haces eso mismo con todos tus botones podras 'tener tantos submit' como quieras. Y ya puestos:

<form name="formularioclientes" method="post">

A no ser que quieras que se muestre en la barra de direccion del navegador lo que estas mandando.

PD. En el foro de javascript te diran algun modo mas eficiente de hacerlo.

Última edición por elAntonie; 06/04/2009 a las 02:30
  #5 (permalink)  
Antiguo 06/04/2009, 08:28
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: pasar datos a jsp

Hola, lo he intentado pero no me reconoce la palabra function, me da el siguiente error:

Syntax error on token "function", new expected

y también me dá error la segunda linea:

Syntax error on token(s), misplaced construct(s).

¿Es cuestión de importar alguna librería en la página jsp? Soy muy nueva en esto y hay muchas cosas que no sé aún. Muchas gracias, un saludo
  #6 (permalink)  
Antiguo 06/04/2009, 08:31
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 3 meses
Puntos: 10
Respuesta: pasar datos a jsp

Logico

la funcion (function) es codigo javascript, o lo tienes en tu fichero js o le pones las etiquertas de script

<script>
function blablelu()
{
....

}
</script>
  #7 (permalink)  
Antiguo 07/04/2009, 04:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: pasar datos a jsp

Hola, ok, muchas gracias. Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:15.