Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/06/2010, 02:09
luis10307
 
Fecha de Ingreso: junio-2010
Ubicación: Antofagasta
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Mensaje Respuesta: Recuperar desde un Servlet un parámetro de un JSP que contiene Javascript

Denis127, gracias por tu respuesta. Acertaste directamente con la razón del problema.

Cita:
quizás el problema sea que no exista en el formulario el objeto <input name"usuario"/> por eso quizás al acceder al elemento desde el DOM no te lo guarde
Efectivamente, ha sido un error propio de quien empieza a divertirse con Java EE sin conocimientos previos de HTML y Javascript. Es la primera vez que escucho sobre el Document Object Model (DOM), no sabía que "al acceder al elemento desde el DOM", este era el responsable de "guardarlo" (debo profundizar sobre el significado de ese último término) y también he descubierto que DOM tiene que ver con una línea que se encuentra en el JSP

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
El problema que he planteado en el tema lo solucioné de la siguiente manera:

Primero, en el formulario, agregué el hidden respectivo

Código:
<input type="hidden" name="usuario"></input> 
Luego, en la función, agregué el método submit para enviar los datos del formulario al Servlet

Código:
function f_elimina(p_usuario){	
     document.forms[0].action='cliente.pe';
     document.forms[0].usuario.value=p_usuario;
     document.forms[0].submit();	
}
En el vínculo en HTML, que invoca a la función, no necesité realizar modificaciones

Código:
<a href="javascript:f_elimina('${cli.usuario}')">E</a>
Cita:
no se si eso de ${} es de java o no porque mñas bien me recuerda a PHP o incluso a scripting en shell o awk
${cli.usuario} es código de JavaServer Pages Standard Tag Library (JSTL) que utiliza el Expression Languaje (EL) para evitar el uso de código Java en un JSP (JSP Scripting: Declarations, Scriplets y Expressions).

Cita:
En cuanto a lo de que el servlet no recoja los parámetros te puedo decir que si lo has implementado en el método doGet, con el request.getParameter("nombre_paraḿetro") es la manera correcta.
Tras la corrección, quedó en evidencia que el Servlet siempre fue llamado correctamente. El método eliminar es invocado por el método service y no por doGet en el Servlet que he programado

Código:
protected void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
[...]
     this.eliminar(request,response);
[...] 
}
Código:
private void eliminar(HttpServletRequest request,HttpServletResponse response){
     String v_usuario = request.getParameter("usuario");
[...]
}
Saludos.

Última edición por luis10307; 30/12/2010 a las 16:52