JSP forward con parámetros

Tengo un JSP que redirecciona mediante:
%>
<jsp:forward page="help_desk_display_history.jsp?num=1" />
<%
Mi problema es que al redireccionar, si va a la página, pero el URL no se actualiza, sigue apareciendo el del JSP y los parámetros en este caso num no se envían.

6 Respuestas

Respuesta
1
Parece que en realidad el jsp:forward no debe utilizarse con parámetros ya que no tiene forma el jsp de saber si le estás mandando los datos por método GET o método POST. Tal vez sería mejor en este caso intentar una solución mediante Javascript.
Si estás redireccionando mejor declara un FORM con el ACTION apuntando al jsp que necesitas. El METHOD debe ser POST. Finalmente genera un elemento INPUT de tipo HIDDEN, dale como valor el de 1 y como NAME el de num.
En la etiqueta BODY usa el evento onload="inicio()"
Declara un Javascript que redireccione la página así
function inicio() {
document.forms[0].submit();
}
Eso debe ser suficiente...
Si tienes algún problema puedo asesorarte con gusto.
Respuesta
1
Desgraciadamente el tag <jsp:forward> funciona de esa manera, no muestra la nueva dirección en el Browser. Los parámetros se mandan de la siguiente manera:
<jsp:forward page="help_desk_display_history.jsp">
<jsp:param name="num" value="1" />
<jsp:param name="otroparametro" value="xvalor" />
</jsp:forward>
Dejame investigar una forma de mostrar la dirección en el Browser...
Respuesta
1
Mírate el manual para ver cómo se pasan parámetros:
http://java.sun.com/products/jsp/syntax/1.2/syntaxref1212.html
Por otro lado, si lo que quieres es cambiar la URL (es decir, realizar una petición HTTP nueva por completo sin tener nada que ver con la anterior) lo que tú buscas es sendRedirect().
Respuesta
1
Cuando tu haces un "forward", lo que hace el servidor de JSP es reenviar el HTTPRequest que recibe la página donde está el forward a la página que se indica en la sentencia, pero no puedes incluir parámetros adicionales a los que ya te llegaron.
Es decir, es como si cambiaras la página que recibe los datos de la anterior, pero no puedes añadirle más sólo tendrá los que la página inicial enviara.
Respuesta
Debes usar la etiqueta 'param' para enviar los datos, esot es
<jsp:forward page="xxxxx.jsp">
<jsp:param name="num" value="1"/>
</jsp:forward>
Respuesta
¿Usas la sesión para pasar paánetros entre páginas?
No, sismplemente los paso mediante la URL, en teoría la sesión no debe usarse para eso, ya que si accedo desde otro punto que no cree la sesión no funcionaria.
No se como lo tendrás programado, pero con una sesión si se puede hacer eso, pero si quieres hacerlo de la forma que dices aquí tienes el código:
<jsp:forward pagehelp_desk_display_history.jsp">
<jsp:param name="num" value="1"/>
</jsp:forward>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas