Spring MVC - Ответ AJAX-JSON, содержащий визуализированное представление JSP - PullRequest
1 голос
/ 30 марта 2011

Мне нужно, чтобы мой контроллер возвратил ответ AJAX JSON, содержащий обновленный код HTML.

Обновленный код HTML создается путем визуализации представления JSP.

Например: JSP:

<tr>
<td>${data1}</td>
<td>${data2}</td>
</tr>

Ответ JSON:

{"columns" : "2", "rows":"1", "data":rendered view}

В настоящее время я пытаюсь создать фиктивный ответ с "моим собственным" выходным потоком и поместить содержимое визуализированного представления в ответ json, но безудачи.

Кроме того, что я не могу заставить это решение работать, оно не кажется правильным.Любые советы о том, как правильно это сделать?

Спасибо, Ори

1 Ответ

3 голосов
/ 30 марта 2011

Если представление, которое вы хотите захватить, находится в /WEB-INF/views/my.jsp, тогда вызовите

request.getRequestDispatcher("/WEB-INF/views/my.jsp").include(request, myResponse);    

, где myResponse - это либо HttpServletResponseWrapper, который вы создали, либо Spring MockHttpServletResponse.В последнем случае вы можете получить отрендеренный вывод из getContentAsString ().

РЕДАКТИРОВАТЬ ниже

Я столкнулся с другим SO вопрос вокруг захвата ответов сервлета, которые имели некоторые указатели наHttpServletResponseWrappers, которые вы можете использовать.

Две реализации, которые выглядят хорошо:

  1. DWR SwallowingHttpServletResponse
  2. Sitemesh PageResponseWrapper * 10231024 *

Наслаждайтесь,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...