l'appel de la Servlet de la méthode de JSP
Je développe une application web à l'aide de JSP et de Servlets.
Je souhaite appeler servlet méthode de JSP page lorsque l'utilisateur clic sur le bouton mettre à Jour.
<input type="button" value="Update" onclick="<%MyServletName.Update(request, response);%>"></input>
Quand je clique sur le bouton mise à Jour, alors cette méthode est l'appel de la servlet, Mais le problème est que lorsque le formulaire est chargé alors cette méthode est appelée automatiquement.
Merci d'avance.....
Code Source....
<%@page import="MyPackageName.MyServletName"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Update</title>
</head>
<body>
<form>
<%
String[][] data = (String[][])request.getAttribute("data");
String[] columnNames = (String[])request.getAttribute("columnNames");
//fill the table data
if(columnNames.length!=0 && data.length!=0)
{
%><table><%
}
for(int i=0;i<data.length;i++){
%>
<tr> <td><%= columnNames[0] %></td> <td><input type="text" name="text1" value="<%= data[i][0] %>"></td> </tr>
<tr> <td><%= columnNames[1] %></td> <td><input type="text" name="text2" value="<%= data[i][1] %>"></td> </tr>
<tr> <td><%= columnNames[2] %></td> <td><input type="text" name="text3" value="<%= data[i][2] %>"></td> </tr>
<%
}
%>
<tr>
<td></td>
<td><input type="button" value="Update" onclick="<%PlanProtocolEdit.Update(request, response);%>"></input></td>
</tr>
</table>
</form>
</body>
</html>
Est-il possible que je peux appeler la servlet autre méthode que dogGet() et doPost() sans invoquer les servlets dogGet() et doPost() méthodes?
Ive mis à jour ma réponse, vous devez modifier votre code pour utiliser un formulaire tel que décrit dans ma réponse ci-dessous. Ce n'est pas ce que le javascript onClick fonction est utilisée pour.
grâce capots pour suggérant une bonne façon de le faire.
grâce capots pour suggérant une bonne façon de le faire.
OriginalL'auteur Bhushan | 2012-12-20
Vous devez vous connecter pour publier un commentaire.
Vous devez spécifier l'action sur le formulaire lui-même et non le bouton d'entrée.
Si vous définissez une action sur la forme. E. g.
Les formes bouton soumettre pour envoyer le formulaire à l'URL. E. g.
Vous pouvez ajouter un attribut supplémentaire pour le
form
balise pour indiquer si vous souhaitez que la demande est unget
ou unpost
.Serait d'envoyer une requête post, vous pouvez alors prendre cette place dans votre Servlet avec le
handlePost
méthodeL'approche ci-dessus doivent être utilisés, actuellement, vous essayez d'appeler une méthode en Java sur un événement onclick javascript. Ceci est incorrect et il n'est pas de faire ce que vous pensez qu'elle est.
Le code dans
PlanProtocolEdit
. Mise à jour doit être dans undoGet
oudoPost
méthode d'une servlet qui sera déclenchée par la configuration de votre formulaire tel que décrit ci-dessus.C'est probablement quelque chose qui est de l'appeler. Avez-vous du javascript? Essayez disablying JS et voir si il arrive encore
Non, il n'est pas du javascript. N'est-il pas de travail parce que le client ne reçoit que le HTML-CSS etc et pas de code java? ou est-il erreur dans mon code?
Avez-vous essayer de désactiver le JS et d'essayer? Il peut également être utile si vous postez votre formulaire html
J'ai post fichier JSP maintenant.
OriginalL'auteur cowls
<input type="button" value="Update" onclick="<%MyServletName.Update(request, response);%>"></input>
Cette ligne dans votre jsp seront évalués à
<input type="button" value="Update" onclick=""></input>
dans la page HTML. Si vous voulez appeler votre servlet sur un clic, première carte de votre servlet pour un chemin d'accès d'url dire /myservletpath dans web.xml et puisutilisation
<input type="button" value="Update" onclick="location.href='/myservletpath'"></input>
le code ci-dessus va créer un bouton. onclick du bouton un
get request is sent to /myservletpath
. Dans web.xml vous êtes à la cartographie de cette url, un servlet. Que le servlet doit avoir un surchargéedoGet
méthode qui sera invoquée. dans doGet vous pouvez appeler n'importe quelle méthode que vous voulez.Oui je peux le faire de cette façon aussi. mais le problème est que doGet() la méthode et doPost (), méthode déjà avoir un code source.. donc je ne veux pas de ces méthodes pour être appelé. (Si j'ai de la création d'un servlet et de mettre la mise à Jour mathod de code que les servlets doGet() ou doPost() méthode, puis il va travailler. mais je tiens à mettre ce code dans le même servlet)
OriginalL'auteur ssk
Vous pouvez appeler une servlet autre méthode que doPost() et doGet() par la création d'un useBean de jsp.
et l'appel de la servlet méthode onclick comme:
Cette jsp bean permettrait d'identifier votre classe de servlet qui vous pouvez désormais accéder à votre page jsp avec l'id qui lui est donné dans useBean tag.
Ne pas oublier de fermer l'étiquette useBean.
OriginalL'auteur Harshvardhan Solanki