2014-05-18 34 views
0

我有一個打開模式彈出的JQuery代碼。我想從Servlet中的方法執行這個JQuery代碼(函數)。從Servlet執行/調用JQuery(函數)

我要實現其中之一:

  1. 呼叫是在從Servlet的JSP頁面中定義的方法的JQuery。
  2. 在Servlet的方法內執行JQuery代碼。

這可能嗎?我無法找到任何關於此的信息。

+0

你將如何處理模式彈出?你想讓它顯示在服務器上嗎? –

回答

0

這是不可能的。

JQuery代碼是JavaScript代碼,它在瀏覽器中執行。

Servlet代碼是java代碼,它在服務器端執行。

+0

我不會那麼說。 Javascript是一種完整的語言,可以在服務器端或客戶端執行。 – Hirak

+0

@Hirak,你說得對,但在這種情況下,我們想執行一些JQuery代碼。 JQuery通常操縱DOM,但在服務器端沒有任何DOM。所以在Servlet容器中執行js代碼並沒有什麼意義。 – Danix

-1

我不知道你爲什麼要這麼做....但如果我理解正確的問題,這裏是做這件事:

  1. 解析JSP在servlet獲得的保持jQuery的JavaScript代碼。將jQuery代碼加載到字符串閱讀器中。
  2. 使用嵌入式的ScriptEngine解析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返回一個包含任何函數輸出的Object。您需要根據需要處理對象。 但是,如果該函數,在行中繪製模式彈出(使用document.innerhtml),那麼你不能得到彈出...恕我直言。
+0

嗯......模態彈出窗口怎麼樣? –

+0

我編輯了關於彈出框的帖子。 – Hirak