3

我有以下struts def:

<result name="reportSuccessfullyDownloaded" type="stream">
  <param name="contentType">application/zip</param>
  <param name="contentDisposition">attachment;filename="%{filename}"</param>
</result>

它会下载一个 .zip 文件,其中可以包含 1-10 个生成的 pdf 报告。

我想做的是更改应用程序以处理以下情况:

  • 如果生成了所有报告,请使用“流”结果并下载 .zip 文件。无需重定向。
  • 如果生成了一些报告但其他报告有错误,请使用“流”结果并下载带有生成 pdf 的 .zip 文件,然后重定向到列出未生成报告的错误页面。
  • 如果未生成报告,请跳过下载并重定向到列出未生成报告的错误页面。

我的问题是:我怎样才能为单个动作获得多个“结果”?我不明白这怎么可能。是吗?还是我必须以某种方式不得不使用非常不鼓励的“连锁”结果?

非常感谢任何帮助。

4

1 回答 1

1

我知道这已经很老了,但我建议您将报告生成的状态存储在会话中,并有一个 ajax 操作来服务生成状态,以及另一个下载文件的操作。

这样,您可以多次更新报告生成的状态并很好地提供它,例如:

  • 一月 - 生成
  • 2 月 - 错误 #231,联系支持人员
  • 三月 - 生成
  • 四月 - 进行中...
  • 五月 - 待定

一旦一切完成,您也可以自动开始下载。只需确保在用户重新进入页面或看起来合适时清除会话。

于 2013-02-12T10:57:36.013 回答