我是網絡開發新手。我有一個外部JavaScript文件,它具有顯示 提示的錯誤細節的功能。我需要將錯誤消息傳遞給函數。我已經寫了servlet的控制器。如何從servlet調用JavaScript的函數
如何從我的servlet調用該JavaScript文件的功能。
我是網絡開發新手。我有一個外部JavaScript文件,它具有顯示 提示的錯誤細節的功能。我需要將錯誤消息傳遞給函數。我已經寫了servlet的控制器。如何從servlet調用JavaScript的函數
如何從我的servlet調用該JavaScript文件的功能。
從servlet中調用java腳本函數是不可能的。相反,你可以打印使用
response.getOutputStream().println("[javascript code]");
到瀏覽器的JavaScript代碼,然後JavaScript函數會在瀏覽器中執行。
這對我不起作用:(它只是簡單地在瀏覽器上打印出java腳本,並且不會對這段代碼產生任何影響。請幫助。這就是我正在做的, \t response.getOutputStream()。println ( 「VAR PS = document.getElementsByClassName(\」 消息\ 「);」 \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t +「PS。innerHtm = \「DONE \」「); – 2014-04-05 15:22:55
您必須使用script標記以及您的java腳本代碼,如response.getOutputStream()。println(」「); – 2016-04-04 04:22:15
您可以使用以下方法實現類似的行爲。在發送響應本身時,您可以提供JS事件。
PrintWriter out = response.getWriter();
out.println("<tr><td><input type='button' name='Button' value='Search' onclick=\"searchRecord('"+ argument + "');\"></td></tr>");
所以當你點擊搜索按鈕時,JS的搜索記錄方法將被調用。
你要明白,一個servlet在Web服務器上運行,而不是在web瀏覽器和JS運行在網頁瀏覽器,而不是在網絡服務器。通常的做法是讓servlet將請求轉發給一個JSP文件,該文件依次生成HTML/CSS/JS代碼,由Web服務器將其發送到Web瀏覽器。最終,所有HTML/CSS/JS代碼都會在網頁瀏覽器中執行。
爲了實現您的(有點奇怪的,tbh)功能需求,只需讓轉發的JSP有條件地呈現特定的腳本調用。舉例來說,如JSTL<c:if>
如下,假設你收集,並設置錯誤,以JSON格式數組${errors}
:
<c:if test="${not empty errors}">
<script>displayErrors(errors);</script>
</c:if>
還是讓JSP其指定爲JS變量,讓JS進一步處理。喜歡的東西:
<script>
var errors = ${errors};
if (errors.length) {
displayErrors(errors);
}
</script>
至於要求是奇怪的,如果你被迫使用JS顯示消息,那隻能意味着你使用的是alert()
什麼的。這是非常90年代,不友好用戶。讓JSP相應地生成HTML,將它們放在輸入字段旁邊,或放在表單頂部的列表中。 Our servlets wiki page有一個hello世界的例子,它的確如此。
你的問題沒有意義。 JavaScript在en用戶的瀏覽器中執行。一個servlet在服務器上執行。重新思考你真正想做什麼。 – 2012-04-21 11:18:31
@JBNizet我想我們可以從servlet調用JS。我們可以將響應發送給瀏覽器,並且我們可以創建腳本來調用。 – Ved 2012-04-21 11:39:33