如何将JSP变量传递给外部文件中的javascript函数?
我有以下设置
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript" src="js/jquery/jquery-2.1.1.js"></script>
<script type="text/javascript" src="js/jquery/ui/jquery-ui.js"></script>
<script type="text/javascript" src="js/date/moment.js"></script>
<script type="text/javascript" src="js/app.js"></script>
<script type="text/javascript" charset="utf-8" src="js/d3.js"></script>
<script type="text/javascript" src="js/myScript.js" ></script>
<link href="js/jquery/ui/jquery-ui.css" rel="stylesheet" />
<link href="js/jquery/ui/jquery-ui.theme.css" rel="stylesheet" />
<link href="css/myCSS.css" rel="stylesheet" />
<title>My Title</title>
</head>
<body>
<div id="myDIV">
<c:set var="myVar" value="${myInVar}" />
<script>runMyScript();</script>
</div>
</body>
</html>
现在在我的javascript中,我尝试访问jsp变量,但我发现在线工作的两种方式都没有:
var javaScriptVar = '${myVar}';
var javaScriptVar2 = "<%=myVar%>";
而不是jsp变量的实际值,我得到了字符串。
我在这个答案中读到:Passing variable from JSP to Javascript建议在我包含javascript文件之前声明变量,但我无法弄清楚如何做到这一点。
如果我将它们放在标题中,则它们不会被解析,因为它们来自后端请求。 如果我没有在标题中包含脚本并在进行调用之前将src属性添加到脚本部分,则永远不会执行该方法。
这里完全糊涂了。
答案 0 :(得分:2)
您的JavaScript位于.js
文件中。服务器将(除特殊情况外)将其视为静态文件。它只会在没有处理的情况下提供给客户端。
如果要运行JSP代码(例如<%=myVar%>
),请将其放在JSP文件中。