Domanda

Come posso passare un parametro da useBean di una pagina in JSP a un servlet in Java? Ho alcuni dati in un modulo che non viene superato nessun problema con un pulsante di invio, ma non c'è modo di inviare nient'altro. Per favore aiuto? Ecco il mio codice:

<input name = "deleteGameButton" type = "submit" value = "Delete"
 onclick = "submitToServlet('DeleteGameServlet');">

Ecco il javascript corrispondente:

 function submitToServlet(newAction)
 {
   document.userGameForm.action = newAction;
 }

Vorrei che il servlet avesse accesso a userBean

 <jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />
È stato utile?

Soluzione

Qui fai un po 'di casino.

onclick () è Javascript ed eseguito sul lato client. Non ha un modo (diretto) per aggiornare il bean con ambito sessione. Quel bean viene lasciato sul lato server ed è stato utilizzato quando la pagina HTML è stata generata . Per restituire i parametri al servlet è necessario utilizzare buoni campi del vecchio modulo e inviare il modulo.

Aggiungi altri campi al modulo, imposta i loro valori prima di inviare, quindi invia.

In servlet call request.getParameter (" name ");

P.S. Per automatizzare questo tipo di cose USA STRUTS . :-) Struts fa esattamente quello che vuoi: prima di passare i parametri all'azione, popola il bean con quei parametri. In modo trasparente.

Altri suggerimenti

Dipende esattamente da cosa stai cercando di fare. Il

<jsp:useBean id = "userBean" scope = "session" class = "org.project.User" />

Il tag

ti permetterà di usare l'attributo userBean della sessione nel tuo jsp. Se non c'è un attributo userBean nella sessione, ne creerà uno nuovo (usando il costruttore predefinito per org.project.User) e lo inserirà nella sessione.

Quindi, quando si arriva al servlet, è possibile recuperarlo con:

User user = (User)request.getSession().getAttribute("userBean");
 getServletConfig().getServletContext().getRequestDispatcher("servlet path & name");         
 dispatcher.forward (request, response);

Ciao, prova con il prossimo tag:

<jsp:useBean id = "userBean" scope = "session" class = "org.project.User"/>
 <jsp:setProperty name="beanName" property="propertyname" value="value"/>
</jsp:useBean>

altro qui

Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top