Lecture d'une variable JSP à partir de JavaScript

Comment puis-je lire/accéder à une variable JSP à partir de JavaScript?

51
demandé sur Adrien Be 2011-01-26 14:14:15

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

70
répondu Jigar Joshi 2016-09-29 16:38:38

la voie la plus propre, pour autant que je sache:

  1. ajouter votre variable JSP aux données D'un élément HTML-* attribut
  2. 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: