将JSP值传递到外部Javascript文件

将JSP值传递到外部Javascript文件,javascript,jsp,Javascript,Jsp,是否有一种方法可以只使用Javascript和JSP将JSP变量值传递给外部Javascript文件。比如: JSP String str=“Hello”; external.js //不起作用 var str=“”; 谢谢。您将无法写入外部js文件。但是,如果您将var s=“”将成为一个全局变量,可以在外部js文件中使用,因为s将具有全局作用域。因此,简而言之,您不能修改实际的js文件,但可以添加一个具有全局作用域的变量,并在外部js脚本中引用该变量。如果您认为java脚本是在JSP中编

是否有一种方法可以只使用Javascript和JSP将JSP变量值传递给外部Javascript文件。比如:

JSP

String str=“Hello”; external.js

//不起作用 var str=“”;
谢谢。

您将无法写入外部js文件。但是,如果您将
var s=“”将成为一个全局变量,可以在外部js文件中使用,因为s将具有全局作用域。因此,简而言之,您不能修改实际的js文件,但可以添加一个具有全局作用域的变量,并在外部js脚本中引用该变量。

如果您认为java脚本是在JSP中编写的,那么这是可能的


但是您单独提供JS文件,然后您可以创建一个全局变量,该变量将在任何地方都可用。

您只需创建一个包含JS代码的jsp,其中打印有“动态内容”,然后将该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" />'

var myString=''
struts.xml:

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

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

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

<script type="text/javascript">
    var str = "Hello";
</script>
<script src="js/myJavascript.js"></script>
<script type="text/javascript" src="foo.action" charset="UTF-8"></script>
<script type="text/javascript">
    var str = "Hello";
</script>
<script src="js/myJavascript.js"></script>
alert(str)