0

我有一个带有javascript的freemarker模板,我正在使用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 方法中使用该值。

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

4

1 回答 1

1

这不是这些技术如何协同工作的唯一可能组合,但在通常的事情流程中,您所期待的将是不可能的:

  • 调用(以为Java中介Spring)呈现FreeMarker,允许在处理时调用回Java代码。
  • 这个呈现的字符串(可能恰好包含一些Javascript)被传HTTP送到客户端浏览器。至此,Java执行完成。
  • 在浏览器中,生成的文本被解析,然后Javascript运行。这里没有服务器的直接知识,也没有办法回调完成的控制线程。

所以除非你做一些更不寻常的事情,否则你不能按照你的建议去做。

有一些工具可以让客户端 Javascript 回调到服务器并在那里与 Java 交互。所以你可以装配一些东西。但是您不会不做更多工作就直接调用 Java。

于 2013-07-24T01:01:43.617 回答