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

时间:2015-05-23 10:40:36

标签: javascript jstl jsp-tags

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

...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要早得多。

但也许有人知道某种黑客可以让这项工作成功吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

我希望这会对你有所帮助

答案 1 :(得分:1)

您可以将DWR用于该原因。一个旧的框架,但如果你正在寻找你的问题,那仍然很好。 http://directwebremoting.org/dwr/index.html

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