在freemarker模板中从javascript调用Java类的方法

时间:2013-07-24 00:25:50

标签: java javascript spring-mvc freemarker

我有 freemarker 模板,其中包含 javascript ,我正在使用 spring mvc 传入一个java对象“emailer” 。

不知何故,在这个freemarker模板中,我想从freemarker模板中的javascript调用emailer对象的“sendEmail(params,..)”方法。我知道如何从freemarker调用java方法(常规方式 - 例如:How do I call java methods on an object from a FreeMarker template?),但我不知道如何从javascript 中的进行操作。

这甚至可能吗?如果是这样,怎么样? 如果不是,有哪些替代方案?

总体目标是从下拉列表中获取值(使用javascript),然后在按下按钮时调用的java方法中使用该值。

提前致谢!如果需要更多信息,我很乐意提供。

1 个答案:

答案 0 :(得分:1)

这并不是这些技术如何协同工作的唯一可能组合,但在通常情况下,你期待的东西是不可能的:

  • Java电话(由Spring调解)会呈现FreeMarker,允许在处理时调用Java代码。
  • 此呈现的字符串(可能恰好包含一些Javascript)通过HTTP发送到客户端浏览器。此时Java执行已完成。
  • 在浏览器中,解析生成的文本,然后运行Javascript。这里没有对服务器的直接了解,也没有办法回调那个已完成的控制线程。

因此,除非你做一些更不寻常的事情,否则你不能做你所建议的事情。

有一些工具允许客户端Javascript回调服务器并与Java进行交互。所以你可以装备一些东西。但是,如果没有更多的工作,你不会直接调用Java。