Can someone test this example and share the results?
http://timothypowell.net/blog/?p=23
When I do:
var myVar = '<% request.getContextPath(); %>';
alert(myVar);
I get : '<% request.getContextPath(); %>'.
Removing the enclosing single quotes from '<% request.getContextPath(); %>';
gives syntax error.
How can I use the scrptlet or expresion inside a js function?
EDIT: this link has an explanation that helped me:
http://www.codingforums.com/showthread.php?t=172082
Best Answer
That line of code has to be placed in a HTML
<script>
tag in a.jsp
file. This way theJspServlet
will process the scriptlets (and other JSP/EL specific expressions).Note that
<%= %>
is the right syntax to print a variable, the<% %>
doesn't do that.Or if it is intended to be served in a standalone
.js
file, then you need to rename it to.jsp
and add the following to top of the file (and change the<script src>
URL accordingly):This way the
JspServlet
will process it and the browser will be instructed to interpret the JSP response body as JavaScript instead of HTML.Unrelated to the concrete problem, note that scriptlets are considered poor practice. Use EL.