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

Hacer submit con href

Estas en el tema de Hacer submit con href en el foro de Java en Foros del Web. Hola a tod@s, Estoy trabajando en una app web que genera estadisticas a partir de los datos de una BBDD. Los datos se deben mostrar ...
  #1 (permalink)  
Antiguo 18/03/2013, 06:01
 
Fecha de Ingreso: marzo-2005
Mensajes: 94
Antigüedad: 19 años, 1 mes
Puntos: 0
Hacer submit con href

Hola a tod@s,

Estoy trabajando en una app web que genera estadisticas a partir de los datos de una BBDD. Los datos se deben mostrar en HTML y en CSV para excel . Tengo dos servlets que generan lo anterior perfectamente.

En mi pagina jsp tengo un formulario donde el cliente elige los criterios segun los cuales quiere mostrar los datos. El boton del submit que vinculo con el servlet para generar HTML funciona bien. Quiero poner un href para que al pulsarlo se genere el CSV. Vinculo el href con mi otro servlet pero el problema es que no recoge los request.getparameter introducidos y claro me genera la excepcion NullPointer.

Estoy empezando en esto de Java pero creo que el problema es que el href no hace el submit. ¿Hay alguna manera para que el href haga el submit?.

Estaria muy agradecido si alguien me pudiera dar alguna indicacion.

Gracias. Un saludo
  #2 (permalink)  
Antiguo 18/03/2013, 06:06
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Hacer submit con href

href se utiliza como atributo de un ancla.

Si el input es un button o un submit no deberías tener href.

Si es un ancla <a> podrías tenerlo, pero eso no lanzará el formulario.

Si usas un ancla, tienes que poner el href="#" y enviar el form en el onclick. Para botones el submit envia directamente, mientras que al button tienes que usar tb el onclick.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 19/03/2013, 15:16
 
Fecha de Ingreso: marzo-2005
Mensajes: 94
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Hacer submit con href

Hola a tod@s,

Fuzzylog muchas gracias por tu aporte.

He solucionado en parte mi problema. Estuve investigando sobre como vincular eventos con Java usando AJAX. Tengo claro como llamar a servlets desde botones o combos. A continuacion pongo el codigo que he usado por si alguien le puede ser de ayuda:

Se trata de una llamada al servlet GenerarCombo3 con parametros al hacer un onchange en una lista desplegable. Este servlet se conecta a una BBDD y llena otro combo

Antes de esto se comprueba que el navegador acepta xmlhttp (esto es facil encontrarlo en google)

function servletCombo3()
{
if(xmlhttp) {
var txtname = document.getElementById("txtname");
xmlhttp.open("GET","GenerarCombo3?segundo="+IDsegu ndo.value,true);
xmlhttp.onreadystatechange = handleServletCombo3;
xmlhttp.send();
}
}


function handleServletCombo3()
{
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
document.getElementById("contenidoCombo3").innerHT ML=xmlhttp.responseText;
}
else {
alert("Ajax calling error");
}
}
}

Luego en el evento onchange del combo pongo:

<select name="segundo" id="IDsegundo" onchange="servletCombo3();">

Mi problema ahora es que quiero hacer algo parecido. Con un boton (o un enlace) quiero generar un CSV. En el ejemplo anterior el codigo HTML lo genera el servlet (es decir escribe <select......con los valores de la BBDD). Pero ahora la linea

document.getElementById("contenidoCombo3").innerHT ML=xmlhttp.responseText;

no vale ya que con esto imprime el contenido del CSV en la pagina web (incluso al comentar esta linea). En mi servlet que genera el CSV he puesto el response.setContent-type adecuado.


¿Alguien me puede indicar algo?. Muchas gracias por vuestra ayuda.

Un saludo.
  #4 (permalink)  
Antiguo 20/03/2013, 02:25
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Hacer submit con href

Lo que hace esa linea

document.getElementById("contenidoCombo3").innerHT ML=xmlhttp.responseText;

Es poner el html del elemento con id "contenidoCombo3" con el contenido del response. Si ves que no la vas a necesitar elimínala. Pero sobre todo trata de entender que es lo que hace tu código.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: formulario, href, jsp, servlet, submit
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 10:24.