2016-04-17 64 views
0

我是Java EE的新手。在我的應用程序中,我有一個包含文本區域的HTML頁面,其中包含一些信息。 我也有一個用戶的表單。一旦他提交了表單,我就使用一個servlet來處理這些信息。 最後,我需要將結果從servlet轉發到相同的HTML頁面,並在現有的textarea中更新它。 我已經完成了HTML頁面的創建,將表單提交給了servlet。 我現在停留在如何訪問HTML頁面中的textarea來更新我的結果。使用JSP獲取HTML元素

我搜索了很多東西,但到處都是人們將servlet的結果轉發到JSP頁面,並使用「out」對象創建新的HTML頁面。

我需要使用我的HTML頁面的相同textarea來更新結果。請幫助我實現這一點。

在此先感謝。

+0

這對於開始並掌握最終嘗試實現的基本概念有幫助嗎? http://stackoverflow.com/q/4112686 – BalusC

回答

0

有兩種方法可以做到這一點。

服務器端渲染。您可以使用正常的表單提交重新繪製整個頁面。在這種情況下,您可以將一些東西放在servlet中的request範圍內,然後在繪製textarea時在JSP中訪問它。請注意,您沒有訪問JSP中的HTML textarea - JSP運行服務器端代碼來生成HTML標記,但是您不直接訪問瀏覽器DOM。

這可能是這樣的:

  • 的servlet:request.setAttribute("textareaContent", varWithTextareaContent)
  • JSP:<textarea>${textareaContent}</textarea>

客戶端呈現相反,你可以做的jQuery的AJAX POST請求(有一些插件來幫助這一點)。在這種情況下,您的servlet不會轉發到JSP用於HTML呈現 - 它將直接返回像{"textareaContent": ...}這樣的JSON對象,並且您將在AJAX回調中處理該客戶端。在這種情況下,您將直接訪問瀏覽器DOM中的textarea,使用Javascript(而不是JSP)。

+0

我更喜歡第一種方法。但是,我們沒有在JSP中擁有什麼,比如當前頁面上的getElelmentById並更新它的內容。 – user4582135

+0

如果您正在更新頁面內容客戶端,則會應用'getElementById'。當您在JSP中渲染服務器端時,您正在渲染全新的HTML DOM元素(通常是整個頁面),而不是更新現有的元素。 – wrschneider