2011-06-06 60 views
1

我有一個頁面,我正在做一個ajax調用,該調用又被轉發到一個jsp頁面並返回一個在此jsp中構建的表。分區通過ajax調用訪問的JSP頁面

直到現在,這個jsp用來返回原始頁面(表格)用於附加在特定div中的html。但是現在,我們要求這個jsp和表一起返回關於查詢元數據的其他信息。

有了這個改變,我最好不要改變一些客戶端的現有行爲,他們只是附加html。但是,有沒有一種方法可以讓新調用的頁面同時具有html表格(可以附加)和元數據返回(可以被處理)。

讓我知道問題是否不夠清楚。

謝謝!

回答

0

最簡單且破壞性最小的更改是將其作爲響應標題發送。

在你可以使用HttpServletResponse#setHeader()設置響應頭的servlet:

response.setHeader("X-Metadata", metadata); 
// ... 

(使用X-前綴頭名是recommended自定義標題)

在JS,你可以使用XMLHttpRequest#getResponseHeader()得到迴應標題:

var metadata = xhr.getResponseHeader('X-Metadata'); 
// ... 

你甚至可以在那裏設置一些JSON字符串,這樣(德)序列化很容易。

+0

除此之外還有別的方法,我們可以用jsp的某些其他元數據返回一個html代碼段。 – kshtjsnghl 2011-06-06 14:14:30

+0

您需要將HTML響應更改爲JSON或XML,並將解析器更改爲讀取JSON或XML。這涉及到如何分別從JSP獲取內容的重大更改。您需要一個'HttpServletResponseWrapper',其中您將JSP內容寫入本地緩衝區而不是響應。 – BalusC 2011-06-06 14:17:34