Cómo pasar el parámetro al servlet
-
04-07-2019 - |
Pregunta
¿Cómo paso un parámetro de useBean de una página en JSP a un servlet en Java? Tengo algunos datos en un formulario que se pasa sin problemas con un botón de envío, pero no hay forma de enviar nada más. ¿Por favor ayuda? Aquí está mi código:
<input name = "deleteGameButton" type = "submit" value = "Delete"
onclick = "submitToServlet('DeleteGameServlet');">
Aquí está el javascript correspondiente:
function submitToServlet(newAction)
{
document.userGameForm.action = newAction;
}
Me gustaría que el servlet tenga acceso a userBean
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />
Solución
Aquí haces un desastre aquí.
onclick () es Javascript y se ejecuta en el lado del cliente. No tiene forma (directa) de actualizar el bean de ámbito de sesión. Ese bean se deja en el lado del servidor y se usó cuando se generó la página HTML . Para devolver los parámetros al servlet, debe usar los campos de formulario antiguos y enviar el formulario.
Agregue más campos al formulario, establezca sus valores antes de enviar, luego envíe.
En la llamada al servlet request.getParameter (" name ");
P.S. Para automatizar este tipo de cosas USE STRUTS . :-) Struts hace exactamente lo que quieres: antes de pasar los parámetros a la acción, llena el bean con esos parámetros. Transparentemente.
Otros consejos
Depende exactamente de lo que intentes hacer. El
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />
le permitirá usar el atributo userBean de la sesión en su jsp. Si no hay un atributo userBean en la sesión, creará uno nuevo (utilizando el constructor predeterminado para org.project.User) y lo colocará en la sesión.
Luego, cuando llegue al servlet, puede recuperarlo con:
User user = (User)request.getSession().getAttribute("userBean");
getServletConfig().getServletContext().getRequestDispatcher("servlet path & name");
dispatcher.forward (request, response);
Hola, prueba con la siguiente etiqueta:
<jsp:useBean id = "userBean" scope = "session" class = "org.project.User"/>
<jsp:setProperty name="beanName" property="propertyname" value="value"/>
</jsp:useBean>
más aquí
¡Buena suerte!