2012-02-15 159 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