Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Servlet执行/调用JQuery(函数)_Java_Jquery_Jsp_Servlets_Servlet 3.0 - Fatal编程技术网

Java 从Servlet执行/调用JQuery(函数)

Java 从Servlet执行/调用JQuery(函数),java,jquery,jsp,servlets,servlet-3.0,Java,Jquery,Jsp,Servlets,Servlet 3.0,我有一个JQuery代码,可以打开一个模式弹出窗口。我想从Servlet中的一个方法执行这个JQuery代码(函数) 我想实现以下目标之一: 从Servlet调用JSP页面中定义的JQuery方法 在Servlet中的方法内执行JQuery代码 这可能吗?我找不到这方面的任何信息。这是不可能的 JQuery代码是javascript代码,在浏览器中执行 Servlet代码是java代码,它在服务器端执行。我不知道您为什么要这样做。。。。但如果我正确理解了这个问题,这里有一个方法: 解析servl

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

我想实现以下目标之一:

  • 从Servlet调用JSP页面中定义的JQuery方法
  • 在Servlet中的方法内执行JQuery代码
  • 这可能吗?我找不到这方面的任何信息。

    这是不可能的

    JQuery代码是javascript代码,在浏览器中执行


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

    我不知道您为什么要这样做。。。。但如果我正确理解了这个问题,这里有一个方法:

  • 解析servlet中的jsp以获取jquery javascript代码。在stringreader中加载jquery代码
  • 使用嵌入式脚本引擎解析javascript函数。。。。。代码如下:
  • ScriptEngineManager工厂=新的ScriptEngineManager();
    ScriptEngine=factory.getEngineByName(“JavaScript”);
    发动机评估(“”);
    Invocable inv=(Invocable)引擎;
    inv.invokeFunction(“someFUnction”,param1,param2);
    
  • 关于模式弹出:如果函数返回弹出的html代码,那么可以在servlet中捕获。invokeFunction返回一个包含函数输出的任何内容的对象。您需要根据需要处理对象。 但是,如果函数在行中绘制模式弹出窗口(使用document.innerhtml),则无法获得弹出窗口。。。伊姆霍

  • 我不会那么说。Javascript是一种完整的语言,可以在服务器端或客户端执行。@Hirak,你说得对,但在本例中,我们希望执行一些JQuery代码。JQuery通常操作DOM,但在服务器端没有任何DOM。因此,在Servlet容器中执行js代码是没有意义的。您将如何处理模式弹出窗口?要在服务器上显示吗?嗯。。。模态弹出窗口呢?
    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);