参数缓存过期的一种处理方式

最近接到了一个客户提出来的问题:

客户这边的情况是,报表制作的时候设置了几个默认参数,然后在reportConfig.xml里设置
<config>
<name>cachedParamsTimeout</name>
<value>25<value/>
</config>
客户这边报表设置了一个默认的参数,比如设置了一个默认参数为2011-06,但是在项目里查看的时候会从jsp里传入同样一个参数例如:2012-06,这时候展示出来的数据就是2012-06所对应的数据了,打开报表以后客户可能去忙其他事情去了,过了两小时以后回来,页面展示的数据还是2012-06的,但是这时候点击导出excel的时候导出来的数据就会是2011-06的数据了
客户想要我们处理的是,他们过了一定的时候进行导出excel的时候,会弹出一个提示:例如会话变量或者参数已过期,请重新登陆等等,然后点击确定就返回他们的登陆界面


经过测试和与晓秋哥沟通后,提交研发,请研发帮忙增加这样一个功能

现在已经开发出来了并且本地测试通过:

在reportConfig中增加了两个配置

<config>

<name>recalcWhileTimeout</name>

<value>no</value>

</config>

<config>

<name>errorPage4export</name>

<value>exportError.jsp</value>

</config>

recalcWhileTimeout表示当报表在页面上展现以后,再进行打印、导出、填报提交时,如果服务器上这张报表的缓存超时被清除了,是否让系统再重算,设为不重算时,系统就抛出com.runqian.base4.util.CacheTimeoutError这种异常。可取值为yes或no,默认为no。建议一般不要设为重算,因为重算时可能数据库里的数据已经发生变化,算出的报表与页面展现的不一致,填报时可能会造成数据出错 errorPage4export表示导出出错时的错误信息处理页面,一般是一个jsp页面,其值为相对于WEB应用根目录的页面路径.