2008-10-24 10 views
1

Comment passer un paramètre d'une page useBean d'une page JSP à une servlet Java? J'ai des données dans un formulaire qui est passé sans problème avec un bouton de soumission, mais aucun moyen d'envoyer autre chose. S'il vous plaît aider? Voici mon code:Comment passer un paramètre à une servlet

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

Voici le javascript correspondant:

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

Je voudrais le servlet d'avoir accès à UserBean

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

Répondre

4

Vous genre de choses en désordre ici.

onclick() est Javascript et exécuté sur le côté client. Il n'a aucun moyen (direct) de mettre à jour le bean de portée session. Ce bean est laissé sur le serveur, et a été utilisé lorsque la page HTML a été généré. Pour renvoyer les paramètres au servlet, vous devez utiliser les anciens champs de formulaire et soumettre le formulaire.

Ajoutez d'autres champs au formulaire, définissez leurs valeurs avant de les soumettre, puis envoyez-les.

In Appel de servlet request.getParameter ("name");

P.S. Pour automatiser ce genre de choses USE STRUTS. :-) Struts fait exactement ce que vous voulez: avant de passer les paramètres à l'action, il remplit le bean avec ces paramètres. Transparemment

+0

Salut, merci. J'ai utilisé des champs supplémentaires dans le formulaire à la fin. Mais je pensais qu'il devait y avoir quelque chose de plus facile ... Je suppose que ce serait STRUTS. Mais cela fonctionne comme maintenant, donc j'utiliserai STRUTS à l'avenir, la date limite est imminente. Merci. – pypmannetjies

0

Salut essayez avec la balise suivante:

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

plus here

Bonne chance!

+0

Cette balise mettra à jour le bean côté serveur, pendant la génération de la page. Le gars (apparemment, c'est difficile d'être sûr) veut un formulaire soumis pour mettre à jour le bean qui est en session. –

+0

Ok, alors AJAX (ou n'importe quel Framework comme suggéré STRUTS) est la solution, cause de la communication entre le côté serveur et le client doit être fait derrière la scène, non? –

+0

Salut, merci ... Oui, j'ai besoin de quelque chose qui transmet les paramètres de façon transparente du code jsp à une servlet. Je vais essayer d'utiliser STRUTS, merci. – pypmannetjies

2

Cela dépend exactement de ce que vous essayez de faire. Le

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

tag

vous permettra d'utiliser l'attribut UserBean de la session dans votre jsp. S'il n'y a pas d'attribut userBean dans la session, il en créera un nouveau (en utilisant le constructeur par défaut pour org.project.User) et le placera dans la session.

Puis, quand vous arrivez à la servlet, vous pouvez le récupérer avec:

User user = (User)request.getSession().getAttribute("userBean"); 
+0

Salut! Je vais essayer ça, merci. – pypmannetjies

1
getServletConfig().getServletContext().getRequestDispatcher("servlet path & name");   
dispatcher.forward (request, response); 
Questions connexes