问题如下:当我在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要早得多。
但也许有人知道某种黑客可以让这项工作成功吗?
提前致谢。
答案 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能够尽可能简单地进行交互和相互调用。