2013-01-19 41 views
0

我使用Spring MVC。 我想通過轉發來呈現一些jsp。然後我想將結果寫入json。使用呈現的jsp寫入json對象與控制器使用呈現的jsp

對於exmple我想我的渲染複雜的JSP和退出我想: { 「結果」: 「OK」, 「HTML」: 「......。」}

如何我可以這樣做嗎? 我試着看 request.getRequestDispatcher(「tutorMini」)。forward(request,response) 但是,如果我不能通過它的響應,bcz應該把所有的輸出寫入它。

我累了,在JSP中使用一些JSON標籤,但是它有一些麻煩與層次: HTML output with jsp:include and json-taglib

回答

0

既然你需要申請額外的轉換插入HTML時到JSON(逃避'")您無法直接將JSP的輸出寫入響應。

所以,你需要(通過重寫getWriter()和/或getOutputStream())創建的ServletResponseWrapper,將保存輸出的實例並將其傳遞給RequestDispatcher.include()(比forward()看起來更適合這種情況下):

MyServletResponseWrapper wrapper = new MyServletResponseWrapper(response); 
request.getRequestDispatcher("tutorMini").include(request, wrapper); 
String html = wrapper.getSavedOutput(); 

然後,您可以將保存的內容插入到JSON中,並進行適當的轉義。

+0

我應該在MyServletResponseWrapper中寫什麼?有沒有假的執行它? – AKonst

+0

參見http://stackoverflow.com/questions/701681/how-can-i-read-an-httpservletreponses-output-stream – axtavt