簡體   English   中英

有條件地將表單目標動態設置為iframe

[英]dynamically set target of form to iframe conditionally

我正在使用spring mvc和dojo開發一個Web項目。 我有一個獨特的問題。 這就是我在做什么:

  1. 向控制器提交表單,並在控制器中生成pdf。 在響應中設置pdf
  2. 表單的目標是iframe,以便pdf在提交后顯示在表單中。

這完美。 現在,我的問題是:
我正在使用spring mvc驗證程序在表單上進行驗證,如果出現錯誤,我必須返回與錯誤消息相同的頁面。 問題是將這兩種方法結合起來。 如果我發現錯誤並返回返回視圖,因為表單的目標是iframe,則響應會顯示在iframe中,這顯然是我不想要的(我想顯示新頁面),並且一切都很好,我必須在響應中設置pdf並使用目標在iframe中顯示。 我該如何實現?

您沒有提到您是否使用ajax提交form 如果它是ajax那么它將是直接的,我想您不是。

如果您要提交普通form ,則

  1. 不要target的形式提交到iframe

    這樣可以解決您的問題,但是它引入了一個新的問題,即處理PDF響應。

  2. 當您的表單提交通過validation而不是返回PDF返回相同的view但帶有一些javascript代碼,在您的情況下,在頁面底部的dojo彈出一個iframeurl指向pdf流。

    如果使用的是Spring MVC 3.1 ,則可以利用Spring MVC的Flash屬性在表單處理方法和PDF服務方法之間共享任何數據。如果使用的是Spring早期版本,則可以使用Session或在redirect URL中捕獲信息。在這兩種方法之間共享任何信息。

如果可以使用AJAX:

使用AJAX提交表單並返回PDF的URI。 然后,如果驗證正常,則將iframe的源設置為返回的URI。

如果不能或不想使用AJAX:

如果驗證正常,則再次返回同一頁面,但是這次將iframe的源設置為PDF。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM