【问题标题】:Calling Java class's method from javascript in a freemarker template在 freemarker 模板中从 javascript 调用 Java 类的方法
【发布时间】:2013-07-24 00:25:50
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java javascript spring-mvc freemarker


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-11-24
      • 2018-07-30
      • 2017-10-17
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多