JSP (Java Server Page) - enctype='multipart/form-data' ¿Falla?

 
Vista:

enctype='multipart/form-data' ¿Falla?

Publicado por Abelardo (1 intervención) el 19/04/2007 17:31:32
Saludos.

Quería saber por qué me falla este código....

Este es el JSP:

<script>
function subir()
{
form = document.idformUpload;

form.metodo.value="pagina";
form.id.value="21";
form.action.value="<%=contextPath%>/ServletAdmin/";
form.submit();
}
</script>
<form name= "idformUpload" id="idformUpload" enctype='multipart/form-data' action="<%=contextPath%>/ServletAdmin/" method="post">
<input type="file">Introduzca un fichero</input>
<input type="hidden" name="metodo" value="">
<input type="hidden" name="id" value="">
<img onClick="subir();" "class="imageninferior" alt="enviar">
</form>

..y este es el comienzo del Servlet el cual se invoca (ServletAdmin)

protected void doGetOrPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

metodo = (String) request.getParameter("metodo");

if(metodo == null)
metodo = (String) request.getAttribute("metodo");

oLog.info("Servicio a ejecutar: " + metodo);
try {
.....


La pregunta, realmente, es:

Cuando pongo "enctype="multipart/form-data' en el formulario del JSP, al servlet le llega un valor NULL en la vbe "metodo" que se envia por el request......

Si quito dicha línea, (enctype="multipart/form-data') en cambio sí me llega con el valor de "pagina" (como se aprecia en la función javascript del JSP)

¿Alguien me podría decir qué estoy haciendo mal?

Muchas gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Colisión de nombres

Publicado por Gonzalo (72 intervenciones) el 20/04/2007 09:09:37
Si tienes un
<form id="tal">
y dentro de ese formulario tienes un campo al que llamas id:
<input ... name="id"/>
lo que te va a ocurrir es que vas a tener una colisión de nombres al intentar hacer
document.tal.id.value="21";
Porque document.tal.id se refiere al id del formulario, no al campo que se llama id. Ponle otro nombre distinto al campo. Llámalo identificador o clave u otra cosa.

Tampoco es correcto hacer
form.action.value = ...
sino que simplemente es:
form.action = ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Colisión de nombres

Publicado por Abelardo (1 intervención) el 23/05/2007 11:38:48
Saludos...Muchas gracias por las correcciones......

En cuanto al código lo he perfeccionado..pero no llego a dar con la solución al problema inicial.

Ahora mi código es:

//javascript
form.metodo.value = "pagina";
form.pag.value="102",

la cabecera del form es:

//Jsp
<form action="<%=contextPath%>/" enctype="multipart/form-data"

¿Alguien sabría por qué llega al servlet metodo = null?

Muchas gracias por adelantado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar