2010-03-11 9 views
1

Comment attribuer une valeur à une variable dans une page JSP, en cliquant sur un bouton?Comment affecter une valeur à une variable (Une variable java) sur un clic de bouton dans JSP?

J'ai un bouton "supprimer" dans ma page JSP. Quand un utilisateur clique sur ce bouton, il doit mettre un var (disons un drapeau booléen ou une chaîne) à une certaine valeur. Comment puis-je faire ceci?

<% boolean del=false; %> 
<input type="button" name="deleteAnswer" value="delete" onClick= <Code to set del> /> 
<% if(del) { My Code } %> 

Répondre

1

Les interfaces Web ne fonctionnent malheureusement pas comme cela.

Le JSP entier est rendu en premier et envoyé au navigateur. Ensuite, l'utilisateur peut cliquer sur, et vous pouvez envoyer le résultat au serveur et faire une autre page. L'utilisateur ne peut en aucun cas interagir avec le JSP lorsqu'il est en cours de traitement sur le serveur.

Une alternative serait d'utiliser JavaScript pour réagir au clic.

0

La machine serveur dispose d'un serveur Web avec Java/JSP. La machine client a un webbrowser pour HTML/CSS/JS. Webbrowser envoie des requêtes HTTP et récupère les réponses HTTP. Webserver récupère les requêtes HTTP et envoie des réponses HTTP. Java/JSP s'exécute sur le serveur Web et produit une page HTML/CSS/JS. La machine serveur envoie la page HTML/CSS/JS sur le réseau à la machine cliente. Webbrowser récupère HTML/CSS/JS et commence à afficher HTML, appliquer CSS et exécuter JS. Il n'y a aucun moyen de Java/JSP sur la machine client. Pour exécuter Java/JSP lors d'une action client, il vous suffit d'attacher un code Java/JSP spécifique à des requêtes HTTP spécifiques.

Pour commencer, juste un formulaire HTML quelque chose comme ceci dans le JSP:

<form action="delete" method="post"> 
    <input type="submit" value="Delete"> 
</form> 

Et définir un Servlet à web.xml qui écoute sur un url-pattern de /delete:

<servlet> 
    <servlet-name>delete</servlet-name> 
    <servlet-class>com.example.DeleteServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>delete</servlet-name> 
    <url-pattern>/delete</url-pattern> 
</servlet-mapping> 

Créer une com.example.DeleteServlet qui ressemblent à ceci:

public class DeleteServlet extends HttpServlet { 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     // Your code here. 

     // Show JSP page. 
     request.getRequestDispatcher("page.jsp").forward(request, response); 
    } 
} 

C'est essentiellement tout. Pour en savoir plus sur JSP/Servlets, je peux recommander those tutorials.

Questions connexes