在我的应用程序中有两个控制器,
DisplayPageController获取所需的View并将其作为Json Object发送给JSP,然后我将其用于呈现页面。
ExportPageController在视图中生成相同数据的pdf(并非所有数据都选中)。 此外,ExportPageController只能在DisplayPageController之后调用,因为视图页面包含指向它的链接(假设我的客户不是像我们这样的极客,并且在从FireBug中找到导出后不会输入导出链接)
目前我在两个控制器中进行计算,并且由于两个控制器都调用相同的服务来获取数据,因此它是REDUNDANT。
我想要的是,首先,DisplayPageController应该获取数据并进行渲染, 然后,一旦调用了ExportPageController,就应该给它已经由DisplayPageController生成的数据,这样它就不必再次计算数据。
BTW我正在使用Spring MVC,JSP,JasperReports,MyBatis。!
感谢。
答案 0 :(得分:2)
如果您可以在数据上放置一些键来识别它,您可以在bean中实现一个简单的缓存,并将其注入两个控制器。这样两者都可以在重新计算之前检查缓存。您应该将缓存的大小限制为较小的值,因为数据可能只会重复使用一次或两次。我会利用一个有界的FIFO队列,如果它已满,则删除最旧的条目并添加一个新项目。