将JSP值传递给外部Javascript文件

时间:2011-07-07 09:45:07

标签: javascript jsp

有没有办法只使用Javascript和JSP将JSP变量值传递给外部Javascript文件。类似的东西:

JSP

String str = "Hello";

external.js

//not working
var str = "<%=str%>";

感谢。

4 个答案:

答案 0 :(得分:9)

如果您认为java脚本是在JSP内部编写的,那么可能就是这样。

但是你要单独提供JS文件然后你可以创建一个全局变量,并且该变量将随处可用。

答案 1 :(得分:4)

您无法写入外部js文件。但是,如果将var s = "<%=str%>";放在jsp中,它将成为一个全局变量,可以在外部js文件中使用,因为s将具有全局范围。简而言之,您无法修改实际的js文件,但您可以添加具有全局范围的变量,并在外部js脚本中引用该变量。

答案 2 :(得分:1)

您可以创建一个包含js代码的jsp,其中打印了“dynamic stuff”,然后将该jsp作为普通的js文件导入。我将向我展示我自己的实现,对于我正在处理的网站(它使用struts)。我正在使用这种方法将包含几个本地化字符串的地图导出到客户端:

foo.jsp:

<%@ page contentType="text/javascript" pageEncoding="UTF-8" %>
<%@ taglib uri="/struts-tags" prefix="s" %>

var myString = '<s:text name="foo.MY_STRING" />'

struts.xml中:

<action name="foo"><result>foo.jsp</result></action>

针对home.jsp:

<script type="text/javascript" src="foo.action" charset="UTF-8"></script>

答案 3 :(得分:1)

在JSP文件中包含JavaScript文件之前定义字符串。

<script type="text/javascript">
    var str = "Hello";
</script>
<script src="js/myJavascript.js"></script>

在JavaScript文件中,您可以直接引用变量。

e.g。

alert(str)