【问题标题】:Execute/Invoke JQuery (function) from Servlet从 Servlet 执行/调用 JQuery(函数)
【发布时间】:2014-05-18 15:00:03
【问题描述】:

我有一个打开模式弹出窗口的 JQuery 代码。我想从 Servlet 中的方法执行这个 JQuery 代码(函数)。

我想实现以下目标之一:

  1. 从 Servlet 调用 JSP 页面中定义的 JQuery 方法。
  2. 在 Servlet 的方法中执行 JQuery 代码。

这可能吗?我找不到任何关于此的内容。

【问题讨论】:

  • 您将如何处理模态弹出窗口?你想让它显示在服务器上吗?

标签: java jquery jsp servlets servlet-3.0


【解决方案1】:

这是不可能的。

JQuery 代码是 javascript 代码,在浏览器内部执行。

Servlet代码为java代码,在服务器端执行。

【讨论】:

  • 我不会这么说的。 Javascript是一门完整的语言,可以在服务器端或客户端执行。
  • @Hirak,你是对的,但在这种情况下,我们想要执行一些 JQuery 代码。 JQuery 通常操作 DOM,但您在服务器端没有任何 DOM。所以在Servlet容器中执行js代码真的没有意义。
【解决方案2】:

我不确定你为什么要这样做....但是如果我正确理解了这个问题,这里有一种方法:

  1. 解析 servlet 中的 jsp 以获取 jquery javascript 代码。在 stringreader 中加载 jquery 代码。
  2. 使用嵌入式脚本引擎解析javascript函数.....代码如下:
ScriptEngineManager factory = new ScriptEngineManager();
 ScriptEngine engine = factory.getEngineByName("JavaScript");
 engine.eval("<jquery.js code in string form>");
 Invocable inv = (Invocable) engine;
 inv.invokeFunction("someFUnction", param1, param2);
  1. 关于模态弹出窗口:如果函数返回弹出窗口的 html 代码,则可以在您的 servlet 中捕获该代码。 invokeFunction 返回一个包含函数输出的对象。您需要根据需要处理对象。 但是,如果该函数在一行中绘制模式弹出窗口(使用 document.innerhtml),那么您将无法控制弹出窗口......恕我直言。

【讨论】:

  • 嗯...模式弹出窗口怎么样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多