2010-01-18 27 views
5

que comenzó hace poco tiempo con JSP, JSTL, HTML y JavaScript así que aquí es mi problema:conjunto de valores de var valor del campo de entrada

necesito fijar el valor de una var el valor de una entrada oculta. Otra opción es si es posible comparar el uso de

<c:if test="...."> 

el valor de una variable que envié a la solicitud con el valor de la entrada oculta.

Gracias.

actualización

He estado tratando, pero no puedo hacer que funcione.

Tengo este campo que contiene la identificación y el objeto. También tengo la lista con los objetos, así que lo que tengo que hacer es encontrar el objeto relacionado con ese ID.

<input type="text" name="id1" /> 

pero si hago esto:

<c:set var="dd" value="${param.id1}" /> 
<input type="text" value="${dd}" /> 

El texto de entrada está vacía pero el texto relacionado con id1 muestra 850 (es decir, el valor es dinámica)

Cualquier sugerencia de por qué no está funcionando ?

Actualización 2

necesito el "multipart/form-data", porque en la forma que necesito para subir una imagen. Entiendo cómo obtener los parámetros de Java, pero como no estoy usando el servidor sino las páginas JSP, ¿hay alguna forma de hacerlo? Solo necesita leer ese elemento de entrada y guardarlo en una variable.

Respuesta

3

Puede acceder a los parámetros de solicitud por implícita ${param} variable.

E.g. http://example.com/context/page.jsp?foo=bar en combinación con

<c:if test="${param.foo == 'bar'}"> 
    The foo's param value is bar! 
</c:if> 
<c:if test="${param.foo != 'bar'}"> 
    The foo's param value is not bar, it is: ${param.foo} 
</c:if> 

mostraría la primera condición.

Si realmente desea conservar algún elemento de entrada oculto en las solicitudes posteriores (que no fue muy claro en su pregunta), entonces todo lo que básicamente tiene que hacer es:

<input type="hidden" name="foo" value="${param.foo}"> 

actualización: según su actualización: debe dar al elemento de entrada un nombre también. Por lo tanto, p.

<input type="text" name="id1" value="${param.id1}" /> 

De esta manera está disponible por request.getParameter("id1") e inherentemente también ${param.id1}. lo ves ahora?

Actualización 2: según su comentario aquí: ciertamente esto está relacionado con enctype="multipart/form-data". Con esta codificación, los parámetros de solicitud ya no están en el mapa de parámetros, sino en el cuerpo de la solicitud, debido a la confusión con los datos binarios (cargas de archivos).Va a ser una historia larga explicar todo, pero básicamente necesita analizar la solicitud usted mismo. Si tiene un Servlet 2.5 o superior, entonces el Apache Commons FileUpload es muy útil aquí. Lea especialmente la "Guía del usuario" y las "Preguntas más frecuentes" para ver ejemplos de código y aprender a usarlo correctamente (¡también en MSIE!). Incluso puede decidir abstraer FileUpload para que pueda usar HttpServletRequest#getParameter() y ${param} de la manera habitual, también consulte this article.

Si ya tiene Servlet 3.0, puede hacer uso de HttpServletRequest#getParts(). Incluso puede abstraerlo para que pueda usar HttpServletRequest#getParameter() y ${param} de la manera habitual, también vea this article.

Actualización 3: Oh, realmente no quieren utilizar JSP para hacer todo el proceso. Ahí no es para. Ya es hora de aprender Servlet. Además, cuando se utiliza un Filter que devuelve todos los parámetros del cuerpo de la solicitud al mapa de parámetros de solicitud (como se describe en ambos artículos), tampoco es necesario necesariamente un Servlet después de todo.

+0

Todavía no funciona, el elemento de entrada ya tenía el nombre "id1". Todas mis entradas tienen un nombre pero no pueden obtener ninguna de ellas por $ {param.XXX} ¿Está relacionado que el formulario es "enctype =" multipart/form-data "? – framara

+0

No entendí completamente la actualización3, significa que no hay manera de saber desde el mismo .jsp el valor de un elemento de entrada si el formulario es enctype = "multipart/form-data"? – framara

+1

No utilice JSP para la lógica de negocios. Es solo el recibo de problemas. Código Java sin procesar pertenece a clases de Java reales. – BalusC

Cuestiones relacionadas