1

我正在使用 spring mvc 和 dojo 开发一个 web 项目。我有一个独特的问题。这就是我正在做的事情:

  1. 向控制器提交表单并在控制器中生成pdf。在响应中设置 pdf
  2. 表单的目标是 iframe,以便 pdf 在提交后显示在表单中。

这很完美。现在,我的问题是:
我正在使用 spring mvc 验证器对表单进行验证,如果出现错误,我必须返回到带有错误消息的同一页面。问题是将这两种方法结合起来。如果我发现错误并返回返回视图,因为表单的目标是 iframe,响应会显示在 iframe 中,这显然是我不想要的(我想显示新页面),如果一切都很好,我必须在响应中设置 pdf 并使用目标在 iframe 中显示它。我怎样才能做到这一点?

4

2 回答 2

0

你没有提到你是否使用ajax提交form. 如果是ajax这样,那将是直截了当的,我认为您不是。

如果您正在执行正常form提交,那么

  1. 不要target将表单提交给iframe.

    这解决了您的问题,但它引入了一个新问题,处理PDF响应。

  2. 当您的表单提交通过时,validation而不是返回PDF相同view但带有一些javascript代码的返回,dojo在您的情况下,在页面底部弹出一个指向 pdf 流iframe的指向。url

    如果您正在使用Spring MVC 3.1,您可以使用Spring MVC Flash 属性在您的表单处理方法和服务方法之间共享任何数据PDF,如果您使用的是以前的版本,Spring您可以使用Session或捕获redirecturl 中的信息以在这两者之间共享任何信息方法。

于 2013-06-26T06:47:41.477 回答
0

如果可以使用 AJAX:

使用 AJAX 提交表单并返回 PDF 的 URI。如果验证正常,则将源设置为iframe返回的 URI。

如果不能或不想使用 AJAX:

再次返回同一页面,但这次iframe如果验证正常,则已将源设置为 PDF。

于 2013-06-27T14:03:13.577 回答