2014-09-05 145 views
1

是否有一種使用AJAX將HTML從servlet發送到JSP的簡單方法。將HTML從servlet動態發送到JSP

我已經想通了如何使AJAX使用Servlet動態工作,但現在我想基於文本的輸入按一個窗體上的按鈕,生成HTML。

是否有可能,如果是這樣,怎麼樣,只是HTML片段發送到現有的HTML頁面?

例,

我在那裏你可以輸入你的年齡,並根據時代的文本有不同的大小/顏色的基本形式。因此,例如,您將25歲作爲您的年齡發送到servlet,然後它將一段HTML如此<p STYLE="font-size: age;">發送回頁面。

回答

0

通過Ajax調用,你可以得到的輸出結果是一個字符串,HTML或將被解析和結果可以顯示在JSP/HTML的JSON對象。所以你肯定可以通過ajax調用將servlet中的html代碼段發送給jsp。

例如可以使用此approach--

1. Take a string variable in your servlet. 
2. Put appropriate html string as per your conditions in this string variable 
3. send this string as a response from servlet like: 

response.setCharacterEncoding("UTF-8"); 

response.getWriter().write("your string variable here"); 

4. In your ajax call do like this: 

    success : function(dataString) { 
       document.getElementById("containerId").innerHTML=dataString; 
    }, 

其中數據筒是要在其中顯示的HTML輸出html元素的id(如格或跨度)。

+0

在我的情況下,代碼如下所示: http://pastebin.com/Zde3T10Q 我剛添加了innerHTML來測試,但沒有奏效,我認爲我應該以不同的方式處理它,我不知道如何 – 2014-09-05 09:27:52

+0

你是否試圖在你的函數中保持一個警告,無論你是否在responseText中獲得價值? – 2014-09-05 09:29:48

+0

我從servlet獲取值回來,我都試過,只返回純文本並顯示,這對我的作品,但什麼樣的價值要發送我不能innerHTML的做任何事情,我可能會做一些錯誤,雖然 – 2014-09-05 09:39:18

0

最簡單的方法,無需客戶端的JavaScript庫,將一個HTML表單指向一個iframe,就像

<iframe name="myIframe"...> 

<form target="myIframe"...> 

,並提交必要的形式多次。由servlet返回的HTML會將其自身加載到iframe元素中。

如果你喜歡AJAX和客戶端的JavaScript庫,你可以找到非常簡單的程序化的方式在jQuery和類似的庫來做到這一點。

0

基本上,您的servlet可以生成任何類型的內容,例如JSON,HTML等 然後,您將該內容發送回客戶端並將其集成到頁面中。 如何完成取決於內容的類型。

例子:

您發出AJX請求(例如,通過使用jQuery的Ajax功能)和你的servlet生成純HTML。當您的JavaScript接收到該代碼時,您只需替換相關的部分,例如通過替換某些定義的元素的內容。

如果使用JSON代替,你的servlet可以發送數據而不是隻,例如基於年齡的字體大小,如你的例子。然後,您將使用JavaScript訪問該JSON數據並執行相關操作,例如通過改變段落的風格。