2012-02-15 156 views
1

在我的應用程序有兩個控制器,共享數據

  1. DisplayPageController
  2. ExportPageDataController

DisplayPageController獲得所需的視圖,並將其發送到JSP爲JSON對象,然後我使用渲染頁面。

ExportPageController在視圖中生成一個包含相同數據的pdf(並非除了所選數據以外的所有數據)。 也ExportPageController只能DisplayPageController之後被稱爲視圖頁包含鏈接到它(以我的客戶不喜歡我們怪才和螢火發現它後不會鍵入出口的鏈接)

目前我做的計算在兩個控制器中都是冗餘的,因爲兩個控制器都調用相同的服務來獲取數據。

我想要的是,首先DisplayPageController應該得到數據並渲染它,然後一旦調用ExportPageController,它應該被給予DisplayPageController已經生成的數據,以便它不必再次計算數據。

順便說一句我正在使用Spring MVC,JSP,JasperReports,MyBatis。

謝謝。

回答

2

如果你可以在數據上加上一些關鍵字來識別它,你可以在一個被注入到兩個控制器中的bean中實現一個簡單的緩存。這樣在重新計算之前都可以檢查緩存。您應該將緩存的大小限制在很小的範圍內,因爲數據可能只能重複使用一次或兩次。我會利用一個有界的FIFO隊列,如果它已滿並且正在添加一個新項目,就會丟棄最早的項目。

+0

到點..!謝啦。 – 2012-02-16 16:56:39

+0

@indyaah它是如何運作的? – 2012-02-24 08:49:38

+1

工作順利..! :d – 2012-02-24 10:10:59