Access velocity variable with javascript

2019-04-28 12:04发布

问题:

<head> #set($test = "works")) </head>

<script> 
    var get = "${test}"; // I also tried using '$test' and "$test" also

    alert(get);
</script> 

And it alerts out ${test}, but should print works.

How can I get it to work?

回答1:

try this...

    #set ($test = "works")

  <script type="text/javascript">
       var myvar = "${test}";
       alert (myvar);
  </script>

THIS WORKS SURELY!!!!



回答2:

Try var get = "$test"; instead of var get = "${test}";



回答3:

I realize the question is old, but this worked for me:

#set ($test = "hi")
<script>
    alert("$test");
</script>

Need to include quotes around the variable in the alert since it is a string.



回答4:

I had that problem while using tiles, the only way i got it to work was to use the jstl c:out tag, like:

var get = "<c:out value='${test}' />";

that should work, and remember to add the jstl include on the top of the page

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>


回答5:

Just use it as in html:

<script> 
    var get = $test;

    alert(get);
</script>