我能以某种方式从 JavaScript 文件中调用 JSTL 函数吗?

Can I somehow call JSTL function from JavaScript file?

问题如下:当我在我的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 加载要早得多。

但也许有人知道使这项工作可行的特定技巧?

提前致谢。

运行 java 方法或来自 JavaScript 的 jstl 函数(jstl 函数也是 java 方法)是不可能的。因为 java 方法 运行 在服务器端,但 java 脚本在客户端。

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

希望对您有所帮助

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

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