【问题标题】:Pass JSP value to external Javascript file将 JSP 值传递给外部 Javascript 文件
【发布时间】:2016-08-23 10:08:02
【问题描述】:

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

JSP

字符串 str = "你好";

外部.js

//不工作 var str = "";

谢谢。

【问题讨论】:

    标签: javascript jsp


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        您可以创建一个包含 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>
        

        【讨论】:

          【解决方案4】:

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

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

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

          例如

          alert(str) 
          

          【讨论】:

            猜你喜欢
            • 2014-01-17
            • 1970-01-01
            • 2015-03-11
            • 1970-01-01
            • 1970-01-01
            • 2014-01-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多