9
votes

Comment obtenir la valeur de la clé de modèle de contrôleur de printemps MVC à l'intérieur de JavaScript?

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>


0 commentaires

3 Réponses :


18
votes

Utilisez ceci: xxx

au lieu de: xxx

lorsque vous utilisez $ {film} , 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.

Si vous avez vérifié la console de votre navigateur, vous auriez probablement vu une erreur comme identifiant inattendu ou ___ n'est pas défini .


9 commentaires

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 ? Un objet ? Dans votre JSP, vous pouvez utiliser $ {film.attribute} , mais cela dépend de la définition TOOOOObject est défini


@Dheerajvarne dans votre exemple Connexion Exemple, vous devez définir une méthode dans votre classe Connexion appelé "getansername", et dans votre JSP, vous utiliseriez $ {login.username} . 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 classe. Ajouter 2 nouvelles méthodes telles que ceci: String Public String getansername () {Retourner cela.Anname; } et chaîne publique getPassword () {renvoie ce.cassword; } . Ensuite, dans votre JSP, utilisez ceci: var USERNAME = "$ {login.username}"; 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



1
votes

Essayez ceci ...

Si vous aviez ajouté l'objet dans le modèle comme: p> xxx pré>

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};


0 commentaires

0
votes
<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

0 commentaires