在javascript

时间:2016-12-08 22:00:48

标签: javascript jsp

如何将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属性添加到脚本部分,则永远不会执行该方法。

这里完全糊涂了。

1 个答案:

答案 0 :(得分:2)

您的JavaScript位于.js文件中。服务器将(除特殊情况外)将其视为静态文件。它只会在没有处理的情况下提供给客户端。

如果要运行JSP代码(例如<%=myVar%>),请将其放在JSP文件中。