2011-06-15 3 views
0

Quelqu'un peut-il me dire comment affecter des variables javascript à une requête jsp ou à une session jsp.comment affecter des variables javascript à jsp ou jstl

que je fais quelque chose comme ça

Ici deletedRows est un champ caché.

var del=45; 
document.getElementById("deletedRows").value=del 
alert(document.getElementById("deletedRows").value); 
<%String del_values = request.getParameter("deletedRows");%> 
<%request.getSession().setAttribute("del_rows", del_values);%> 

Je ne reçois pas la valeur de del dans mon servlet.

+0

Veuillez lire le cycle de demande-réponse des applications JSP –

Répondre

1

JSP est compilé sur le serveur. Tout le client obtient la "sortie" de la JSP: le HTML, CSS et Javascript.

Le Javascript est exécuté après ce. Ce qui veut dire que tout dans la JSP a devient HTML et tout quand le javascript s'exécute. Vous voulez bien y penser car la partie Java/JSP a "terminé" et maintenant la partie HTML/Javascript prend le dessus.

Maintenant, vous voulez transmettre une valeur calculée/manipulée via Javascript sur le serveur. (Je pense que c'est ce que vous voulez dire quand vous dites "assingn javascript variables to jsp request ou jsp session"

Pour cela, vous devez soumettre la page au serveur, et ces valeurs doivent faire partie de la forme qui est être soumis.

vous pouvez déjà avoir ces valeurs dans certains éléments HTML (comme un <input> ou <select>), sinon vous pouvez créer des éléments cachés et remplir ceux-ci avec les valeurs avant de soumettre le <form>.

Dans le code que vous avez fourni, vous remplissez correctement le champ caché, mais vous devez récupérer la valeur dans le servlet, pas dans le JSP lui-même. En outre, assurez-vous que le champ caché dans un <form> et ce formulaire est soumis.

Une fois le formulaire soumis (à une servlet), les valeurs peuvent être récupérées dans la servlet via request.getParameter.

Il existe peu d'autres mécanismes pour envoyer une valeur au serveur, en utilisant un paramètre d'URL ou via des requêtes asynchrones (AJAX), mais je ne suis pas sûr que vous les examiniez également.

1

Tous les champs de formulaire, y compris les champs cachés, qui sont soumis à partir du navigateur seront accessibles dans votre JSP en utilisant request.getParameter("fieldname");. Les paramètres de chaîne de requête peuvent être accédés de la même manière.

Assurez-vous que vos champs de formulaire ont un attribut name spécifié car c'est ce nom (pas l'attribut id) qui devient le nom du paramètre dans votre code côté serveur. Ce que vous avez déjà fait dans le peu de code indiqué dans votre question, c'est-à-dire, définir le champ de formulaire caché pour avoir la valeur d'une variable JavaScript, devrait permettre à cette valeur d'être soumise puis accédée dans le serveur code-côté. Mais il est difficile de voir pourquoi cela ne fonctionne pas sans voir au moins une partie de votre formulaire HTML, en particulier la définition du champ caché. Cela aiderait aussi à voir comment cela est présenté. (Je suppose que est soumis: si vous essayez d'exécuter tout ce code sur le serveur, cela ne fonctionnera pas, car le JavaScript est traité comme du contenu du document par le serveur, il n'est pas exécuté Encore une fois, je ne peux pas vraiment dire comment vous utilisez ce code sans voir plus de la JSP environnante.)

MISE À JOUR: Je vois que votre code a été formaté depuis que j'ai commencé à taper ma réponse. Vous ne vous attendez pas à ce que les cinq lignes soient exécutées sur le serveur, n'est-ce pas? Le code JavaScript s'exécute uniquement sur le navigateur client après le rendu de la page. Le code Java entre <% %> est exécuté sur le serveur avant que la page ne parvienne au navigateur et ne puisse donc pas accéder au JavaScript. Tout ce qui n'est pas dans les balises <% %> est simplement envoyé au navigateur tel quel - le servlet n'interagit pas avec lui en tant que tel.

Questions connexes