обмен данными между двумя контроллерами в Spring MVC - PullRequest
1 голос
/ 15 февраля 2012

В моем приложении есть два контроллера:

  1. DisplayPageController
  2. ExportPageDataController

DisplayPageController получает требуемый вид и отправляет его в JSP как объект Jsonкоторый я затем использую для рендеринга страницы.

ExportPageController создает PDF-файл с теми же данными в поле зрения (не все, кроме выбранных данных).Также ExportPageController может быть вызван только после DisplayPageController, поскольку страница просмотра содержит ссылку на него (при условии, что мои клиенты не такие, как мы, и не будут набирать ссылку экспорта после нахождения ее из FireBug)

В настоящее время я делаювычисление в обоих контроллерах и которое является ИЗБЫТОЧНЫМ, поскольку оба контроллера вызывают один и тот же Сервис для получения данных.

Что мне нужно, так это то, что сначала DisplayPageController должен получить данные и отобразить их, а затем, как только их вызовет ExportPageControllerдолжны быть предоставлены данные, уже сгенерированные DisplayPageController, чтобы он не должен был снова вычислять данные.

Кстати, я использую Spring MVC, JSP, JasperReports, MyBatis.!

Спасибо.

1 Ответ

2 голосов
/ 15 февраля 2012

Если вы можете поместить какой-то ключ в данные, чтобы идентифицировать его, вы можете реализовать простой кеш в компоненте, который вводится в оба контроллера.Таким образом, оба могут проверить кеш перед пересчетом.Вы должны ограничить размер кеша чем-то небольшим, потому что данные, вероятно, будут использоваться только один или два раза.Я бы использовал ограниченную очередь FIFO, которая удаляет самую старую запись, если она заполнена и добавляется новый элемент.

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