【问题标题】:Can I somehow call JSTL function from JavaScript file?我可以以某种方式从 JavaScript 文件调用 JSTL 函数吗?
【发布时间】:2015-05-23 10:40:36
【问题描述】:

问题如下:当我在我的 JSP 页面中编写 JavaScript 时,使用 JSTL 函数,它正常呈现,理解我想要的一切。但是为了使我的代码更清晰,我想将该 JavaScript 从 JSP 中的标记移到一个单独的文件中。但是当我尝试从文件中调用相同的函数时,它不起作用,只是作为简单文本附加到我的页面。 下面是代码示例,让这更容易理解。

...other JSP stuff

    <script>
        $.each(data, function(index, item) {
                $('#holder').append(
                    '<tr>' +
                        '<td>item.price + ' <fmt:message key="currency.default"/></td>'
                    '</tr>'
                );
            });
    </script>

这对我来说很完美。来自资源包的实际消息被拉取和设置,而不是 fmt:message 函数。

但是当我将相同的代码移动到单独的文件时,所有这些都不会转换并保持纯文本。

据我所知,JSP 在服务器上提供服务,使用这些函数的所有转换都在加载实际 javascript 之前完成。

但也许有人知道某些 hack 来完成这项工作?

提前致谢。

【问题讨论】:

  • 我的回答对您有帮助吗?

标签: javascript jstl jsp-tags


【解决方案1】:

您可以为此使用 DWR。一个旧框架,但如果这正是您在问题中寻找的内容,那么它仍然适用。 http://directwebremoting.org/dwr/index.html

DWR 是一个 Java 库,它使服务器上的 Java 和浏览器中的 JavaScript 能够尽可能简单地交互和调用。

【讨论】:

  • 感谢您的解决方案。我从来没有听说过这个图书馆,但至于他们网站上的描述,这确实是我一直在寻找的。我会尝试深入研究并使用它来满足我的需要 =)
  • 非常欢迎和高兴我的回答对你有帮助,干杯!
【解决方案2】:

从 JavaScript 运行 java 方法或 jstl 函数(jstl 函数也是 java 方法)是不可能的。因为 java 方法在服务器端运行,而 javascript 在客户端运行。

如果你想在客户端运行 java 方法,你必须为此创建 java 小程序。您可以在 applet 中使用 JavaScript 运行 java 方法。有关详细信息,请参阅此Java Applet Tutorial

希望对你有帮助

【讨论】:

  • 感谢您的建议,但我正在尝试尽可能简单地实现一切,使用 Spring 4 并注意小程序等过时的东西。现在我刚刚创建了另一个 JSP 文件,其中包含所有使用 JSTL 标记的脚本,并在需要时导入它
猜你喜欢
  • 1970-01-01
  • 2015-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-15
  • 2019-05-29
  • 2011-07-09
  • 1970-01-01
相关资源
最近更新 更多