J'utilise un contrôleur MVC à ressort. Contrôleur intérieur, je pose une certaine valeur permet de dire une chaîne à l'intérieur du modèle. Maintenant, je voudrais revenir sur cette valeur ou permettant simplement de dire d'imprimer cette valeur dans un JavaScript. Comment fait-on ça? Voici ma classe de contrôleur. J'ajoute "film" comme clé. Maintenant, je veux afficher ce nom du film à l'intérieur du script Java (pas à l'intérieur de JSP. Cependant, à l'intérieur de JavaScript)
<html> <head> //I want to print movie name inside java script not inside jSP body tag. <script type="text/javascript"> var movie_name = ${movie}; alert("movies name"+ movie_name); </script> </head> <body> <h3>Movie Name : ${movie}</h3>//When i print here its working fine. </body> </html>
3 Réponses :
Utilisez ceci: au lieu de: p> lorsque vous utilisez Si vous avez vérifié la console de votre navigateur, vous auriez probablement vu une erreur comme $ {film} code>, le La valeur est placée sur la page sans guillemets. Depuis que je suppose que c'est une chaîne, JavaScript nécessite des cordes entourées de citations. P>
identifiant inattendu code> ou
___ n'est pas défini code>. p> p>
Lan j'ai une petite question à laquelle si le modèle.addattribute ("login", nouvelle connexion ("Uname", "Pass")); Avoir un objet à l'intérieur de la carte et je veux imprimer un seul attribut de cet objet à l'intérieur JavaScript. Comme l'objet est de classe de connexion et il possède un nom d'utilisateur et un mot de passe en tant qu'attribut. Maintenant, je veux imprimer juste le nom d'utilisateur à l'intérieur JavaScript. Comment fait-on ça? Par exemple var login = "$ {quelqu'un}"; alerte (login.uname); ?? Comment puis-je obtenir des valeurs individuelles de la classe de connexion?
@Dheerajvarne qu'est-ce que quelqueObject code>? Un objet
code>? Dans votre JSP, vous pouvez utiliser
$ {film.attribute} code>, mais cela dépend de la définition code> TOOOOObject code> est défini
@Dheerajvarne dans votre exemple Connexion code> Exemple, vous devez définir une méthode dans votre classe code> Connexion code> appelé "getansername", et dans votre JSP, vous utiliseriez
$ {login.username} code>. Notez que tout est sensible à la casse
modèle.addattribute ("TooObject", nouveau login ("UNAME", "PASS")); // Voici ce que j'ai ajouté dans l'attribut de la valeur de la clé de modèle. Maintenant, je voudrais imprimer juste uname à l'intérieur de JavaScript plutôt que d'imprimer tous les objets de connexion.
@Dheerajvarne Oui, alors revenez à votre Connexion code> classe. Ajouter 2 nouvelles méthodes telles que ceci:
String Public String getansername () {Retourner cela.Anname; } code> et
chaîne publique getPassword () {renvoie ce.cassword; } code>. Ensuite, dans votre JSP, utilisez ceci:
var USERNAME = "$ {login.username}"; code> et `var mot de passe =" $ {login.password} ";
@Lan merci yeah $ {login.username} cela a fonctionné. C'est clair maintenant. Sa grande aide.
@Lan puis-je afficher les mêmes données dans Ajax $ .AJAX ({// donner une alerte avec nom d'utilisateur à l'intérieur de Ajax});
Cela ne fonctionne pas si le fichier JS contenant une telle affectation est importé dans le modèle d'interface utilisateur.
@KRM Bien sûr, les fichiers JS ne sont pas évalués par Spring MVC. Cette exigence ne faisait pas partie de l'OP de toute façon. Je n'aime pas cette approche de toute façon - vous ne devriez pas avoir à imprimer des variables de serveur dans JS - mais je ne faisais que répondre à l'op
Essayez ceci ...
Si vous aviez ajouté l'objet dans le modèle comme: p> alors vous obtenez les propriétés de l'objet modèle comme p > var user_name = ${someObject.uname}; // This is assuming that the Login class has getter as getUname();
var user_pass = ${someObject.pass};
<html> jsp code ... <script> some js code .. .. var formProperty = <c:out value="${fromBean.property}" /> </script> .. </html> This worked for me where formBean is the name of form backing object and property is filed of the form class