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

Paso de variables javascript a java

Estas en el tema de Paso de variables javascript a java en el foro de Java en Foros del Web. Buenas: Tengo una pagina web en un jsp, En el incluyo la clase java que realiza las gestiones con la Base de datos que en ...
  #1 (permalink)  
Antiguo 12/03/2009, 05:26
 
Fecha de Ingreso: marzo-2009
Mensajes: 3
Antigüedad: 15 años, 1 mes
Puntos: 0
Paso de variables javascript a java

Buenas:

Tengo una pagina web en un jsp, En el incluyo la clase java que realiza las gestiones con la Base de datos que en mi caso es access.

En acceso_bd tengo la carga de registros de mi pagina. Para recuperar en el inicio los valores de las tablas no tengo problemas.

El problema es que cuando intento dar de alta un nuevo registro en la tabla desconozco como puedo enviar los valores del nuevo registro.
Estos valores los tengo en cajas de texto y en variables javascript:

func Acep(Evento)
{
var campo1= document.getElementById('txtDNI').value;
var campo2= document.getElementById('txtNomb').value;
var campo3= document.getElementById('txtApe1').value;
var campo4= document.getElementById('txtApe2').value;
var campo5= document.getElementById('txtDire').value;
var campo6= document.getElementById('txtTelf').value;
var campo7= document.getElementById('cbEsta').value;
var repetido=0;
for(var z=0;z<lstPersonas.length;z++)
{
if(campo1==lstPersonas[z][0])
{
repetido=1;
}
}
if(repetido==1)
{
alert('El DNI introducido ya esta dado de alta en la base de datos');
}
else
{
alert('Aqui se realiza la llamada que hace el alta');
var correcto = ventana.Actualizar.Altaper(c1,c2.....);
}
}

La idea es pasar de alguna forma los valores en la llamada al JAVA
Algo asi:
Donde Campo1... serian rellenos con los valores de las variables javascript o con los valores de las cajas de texto.

¿Se puede hacer de alguna forma?
Me tiene bastante quemado el tema asi que agradezco cualquier sugerencia

Gracias
  #2 (permalink)  
Antiguo 12/03/2009, 05:38
 
Fecha de Ingreso: julio-2008
Mensajes: 62
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Paso de variables javascript a java

Creo que no he entendido bien lo que explicas porque mi solución es demasiado obvia para que te sea útil.
Es ¿Y si haces el mecanismo a la inversa?
Cuando asignas valores desde la página al js haces
var campo1= document.getElementById('txtDNI').value;
El efecto contrario es
document.getElementById('txtDNI').value = campo1 (o la variable que sea)
Si no es esto lo que necesitas explica un poco más.
  #3 (permalink)  
Antiguo 12/03/2009, 05:45
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Paso de variables javascript a java

Wenas.

Lo que tu pretendes no se puede hacer asi.

Te comento, en tu jsp se distinguen por un lado el codigo java que se ejecuta en el SERVIDOR y el codigo javascript que se ejecuta en EL CLIENTE.

Cuando tu recargas los campos con javascript, estas en cliente, y eso quiere decir que el codigo servidor, en este caso java, YA SE HA EJECUTADO. Por lo tanto, tu bean o tu clase java que obtiene los datos de la BBDD, ya NO EXISTE.

Lo que tendrias que hacer es enviar un formulario a una clase java que actualizase la BBDD y recargase la pagina con la nueva informacion.

O bien ajax.

Saludos.
  #4 (permalink)  
Antiguo 13/03/2009, 01:47
 
Fecha de Ingreso: marzo-2009
Mensajes: 3
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Paso de variables javascript a java

Buenas:

La segunda solucion me parece la mas correcta ya que como bien dices, la parte java se ejecuta en el servidor y el codigo javascript que se ejecuta en EL CLIENTE.
¿Podrias explicarme como enviar el formulario a la clase java?
Un saludo y gracias
  #5 (permalink)  
Antiguo 13/03/2009, 02:39
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Paso de variables javascript a java

De mil maneras.

Por ejemplo, el formulario se manda a una jsp, que inserta en un bean los datos (usando los setter y getter correspondientes y apoyandose en el objeto request para recibir los parametros) y este bean, inserta en la BBDD, lo mas logico es que a su vez se ayude de una clase que sea la encargada de insertar en la base de datos.

Que le tienes mania a las jsps y a los servlets?? puedes intentarlo con struts. Pero yo lo haria asi, para entender su funcionamiento.

Tienes millones de ejemplos de eso. Es un buen ejercicio para entender como funcionan las jsps.

Saludos.
  #6 (permalink)  
Antiguo 13/03/2009, 05:42
 
Fecha de Ingreso: marzo-2009
Mensajes: 3
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Paso de variables javascript a java

Buenas: Lo que he hecho es añadir una etiqueta <form> en la zona donde introduzco los datos del alta y crear un boton submit que llama a un servlet de java.

Ya consigo recuperar los valores de los campos con el request y realizo el alta desde el mismo servlet.

Lo unico que me queda es sabes que instruccion añadir en el servlet para volver a recargar la pagina desde la que pulse el boton para ver el nuevo registro. Actualmente se me queda la pantalla en blanco y tengo que cerrarla y volverla a abrir, cosa que me resulta feisima.

Intento hacer la llamada de la siguiente forma:

String strJsp="/D:/Documents and Settings/ituser/Desktop/NetBeansProjects/Ventana/web/Personas.jsp";
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(strJsp);
dispatcher.forward(request, response);

java.lang.IllegalStateException: PWC1227: No se puede reenviar después de que la respuesta haya sido confirmada

No se porque no me redirecciona. ¿Alguna idea?

Última edición por Joseba2009; 16/03/2009 a las 02:44
  #7 (permalink)  
Antiguo 22/10/2009, 12:05
 
Fecha de Ingreso: octubre-2009
Mensajes: 7
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Paso de variables javascript a java

hola sabes yo tengo un problema similarb disculpa pero no te puedo ayudar
pero agradeceria muxo que compartieras tu codigo conmigo porque yo necesito llenar un combo con una consulta a una BD access al seleccionar una option de un combo llene el otro sin recargar.

Eso se realiza con ajax, pero lo que nose es gestionar las consultas en otra clase..
  #8 (permalink)  
Antiguo 23/10/2009, 03:32
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Paso de variables javascript a java

Cita:
Iniciado por killjaden21 Ver Mensaje
hola sabes yo tengo un problema similarb disculpa pero no te puedo ayudar
pero agradeceria muxo que compartieras tu codigo conmigo porque yo necesito llenar un combo con una consulta a una BD access al seleccionar una option de un combo llene el otro sin recargar.

Eso se realiza con ajax, pero lo que nose es gestionar las consultas en otra clase..
Wenas

Puedes hacerlo con ajax o sencillamente con javascript. Asi te evitas consultas a la BBDD, ya que en una sola te lo puedes traer todo. Por ejemplo, si tienes un combo de autonomias y provincias. Puedes llenar el combo de autonomias, y a la vez, con javascript puedes crearte arrays del tipo.

Código:
Array provincias['Andalucia']=new Array();
provincias['Andalucia'].push('Sevilla');
provincias['Andalucia'].push('Jaen');
...
Asi tendrias rellenos tantos arrays provincias como autonomias tuvieras. Despues con javascript podrias rellenar el combo de provincias con un codigo como este

Código:
function addOpcion(theSel, theValue, theText)
{
  var newOpt = new Option(theText, theValue);
  var selLength = theSel.length;
  if (id_responsable_busq == theValue)
    newOpt.selected = true;  
  theSel.options[selLength] = newOpt;
}

function Combos(x) {
  ItDepend=document.getElementById('combo_provincias');
  if(!ItDepend){return;}                 
  ItDepend.options.length=0;
//si hemos vuelto a poner el combo de autonomias en blanco ponemos todas las provincias
  if(x.value == '')
    ItActual = '';
  else  
    ItActual=provincias[x.options[x.selectedIndex].value];

//option vacio
    addOpcion(ItDepend, "", "Seleccione");

  for(var i=0;i<ItActual.length;i++) 
  {
    var valor = ItActual[i];
    addOpcion(ItDepend, valor, valor);
  }
}
Y llamar a la funcion Combos en el onchange de autonomias.

Saludos.

PD. Para la proxima vez no rescates mensajes que ya habia, abre un post nuevo con tu duda.
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 01:23.