将JSP值传递给外部Javascript文件

11
有没有一种方式可以仅使用Javascript和JSP将JSP变量值传递给外部Javascript文件。类似于:

JSP

String str = "Hello";

external.js

//不能正常工作
var str = "<%=str%>";

谢谢。

4个回答

9
如果您认为JavaScript写在JSP内部,那么这是可能的。但是,如果您单独提供JS文件,则可以创建一个全局变量,该变量将在任何地方都可用。

4

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


1
你可以创建一个包含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" />'

struts.xml:

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

home.jsp:

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

1
在JSP文件中引入JavaScript文件之前定义字符串。
<script type="text/javascript">
    var str = "Hello";
</script>
<script src="js/myJavascript.js"></script>

在您的JavaScript文件中,您可以直接引用变量。
例如:
alert(str) 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接