我有一个 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 中调用 java 方法。
这可能吗?如果是这样,怎么办? 如果不是,有哪些替代方案?
总体目标是从下拉列表中获取一个值(使用 JavaScript),然后在按下按钮时调用的 java 方法中使用该值。
提前致谢!如果需要更多信息,我很乐意提供。
最佳答案
这并不是这些技术如何协同工作的唯一可能组合,但在通常的流程中,您所期待的事情是不可能的:
Java
调用(通过Spring
介导)呈现FreeMarker
,允许回调到Java
代码,如下所示它会处理。- 此呈现的字符串(可能恰好包含一些
Javascript
)通过HTTP
传送到客户端浏览器。此时,Java
执行已完成。 - 在浏览器中,解析生成的文本,并运行
Javascript
。这里没有服务器的直接知识,也没有办法回调已完成的控制线程。
因此,除非您正在做一些更不寻常的事情,否则您不能做您所建议的事情。
有一些工具允许客户端 Javascript 回调到服务器并与那里的 Java 进行交互。这样你就可以组装一些东西。但您不会简单地直接调用 Java,而无需进行更多工作。
关于java - 在 freemarker 模板中从 javascript 调用 Java 类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17823251/