有没有办法只使用Javascript和JSP将JSP变量值传递给外部Javascript文件。类似的东西:
JSP
String str = "Hello";
external.js
//not working var str = "<%=str%>";
感谢。
答案 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)