Lecture d'une variable JSP à partir de JavaScript
Comment puis-je lire/accéder à une variable JSP à partir de JavaScript?
5 réponses
alert("${variable}");
ou
alert("<%=var%>");
ou exemple complet
<html>
<head>
<script language="javascript">
function access(){
<% String str="Hello World"; %>
var s="<%=str%>";
alert(s);
}
</script>
</head>
<body onload="access()">
</body>
</html>
Note: épurez l'entrée avant de la rendre, elle peut ouvrir un grand nombre de possibilités XSS
la voie la plus propre, pour autant que je sache:
- ajouter votre variable JSP aux données D'un élément HTML-* attribut
- puis lire cette valeur en Javascript si nécessaire
mon opinion sur les solutions actuelles sur cette page SO: lire "directement" les valeurs JSP en utilisant Java scriplet dans le code javascript réel est probablement la chose la plus dégoûtante que vous pourriez faire. Me donne envie de vomir. haha. Sérieusement, essayez de ne pas le faire.
la partie HTML sans JSP:
<body data-customvalueone="1st Interpreted Jsp Value" data-customvaluetwo="another Interpreted Jsp Value">
Here is your regular page main content
</body>
la partie HTML lors de L'utilisation de JSP:
<body data-customvalueone="${beanName.attrName}" data-customvaluetwo="${beanName.scndAttrName}">
Here is your regular page main content
</body>
la partie javascript (en utilisant jQuery pour la simplicité):
<script type="text/JavaScript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
<script type="text/javascript">
jQuery(function(){
var valuePassedFromJSP = $("body").attr("data-customvalueone");
var anotherValuePassedFromJSP = $("body").attr("data-customvaluetwo");
alert(valuePassedFromJSP + " and " + anotherValuePassedFromJSP + " are the values passed from your JSP page");
});
</script>
et voici le jsFiddle pour voir cela en action http://jsfiddle.net/6wEYw/2 /
ressources:
- HTML 5 données - * attribut: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes
- Inclure du code javascript dans le fichier html Inclure le fichier JavaScript dans le HTML ne fonctionne pas