2013-03-26 48 views
0

我有一個Spring MVC控制器,它根據特定條件作爲重定向被調用。除了我希望返回的JSP作爲模式窗口之外,一切看起來都很好。有關如何實現這一目標的任何建議?
我希望myModalWindow.jsp以模態窗口或彈出形式返回。如何從控制器返回一個jsp作爲彈出窗口

@RequestMapping(value ="/abc/xyz.html") 
public String getMyModal() 
{ 
    //Do something here and return modal 

    return "myModalWindow"; 
} 

編輯1:該調用是通過另一個控制器進行的,該控制器又通過Ajax調用進行調用。

+0

您需要詳細說明您的問題。是否在另一個頁面上通過一些Javascript創建了對您的控制器的請求?假設這個Javascript正在使用Dojo,你可能需要dijit/Dialog。 http://dojotoolkit.org/reference-guide/1.8/dijit/Dialog.html – Frode 2013-03-26 16:01:16

+0

編輯了這個問題。 – user2161881 2013-03-26 16:05:41

+0

你還應該詳細說明一下。從技術上講,你可以在你的Ajax調用的load/callback函數中放置alert(response.text)(或類似的),並且你將得到一個模式窗口,其中包括服務器響應的任何內容。也許你想要更奇特的東西,但是如果不瞭解更多關於Javascript的信息,從服務器返回的數據以及您的一般設置/知識,就很難分辨出來。例如,您的頁面上是否已經創建了可以進行Ajax調用的Dojo? – Frode 2013-03-26 16:18:45

回答

2

Modal window = javascript ...你不能要求服務器打開客戶端瀏覽器中的彈出窗口。 除非你的上一頁在新的瀏覽器窗口中打開了「/ abc/xyz/html」,但無論你的控制器返回什麼視圖,它都會發生......並且這不是一個模態窗口。

對於一個真正的彈出窗口,所有你能做的就是返回一個頁面,在onload函數打開模態窗口(JSP):

@RequestMapping(value ="/abc/xyz.html") 
public String getMyModal() 
{ 
    //Do something here and return modal 

    return "myPageThatOpensAModalWindow"; 
} 

...然後在myPageThatOpensAModalWindow.jsp:

<html> 
    <head> 
    <script> 
     function loadModalWindow() { 
     // open your window here 
     window.open("/myModalWindowURL", ...); 
     } 
    </script> 
    </head> 

    <body onload="loadModalWindow()"> 
    <h1>Hello World!</h1> 
    </body> 
</html> 
0

使用Javascript庫從「/abc/xyz.html」加載模式。 也許您需要更改該jsp的模板以僅包含模式的內容(避開,頁眉,頁腳和主html結構)。

沒有html標題,調用或任何允許您自行顯示模式的東西,它通常是一個絕對定位的div,並且在頁面上有一個半透明層,可以阻止所有點擊它通常用作網頁設計中的模式

相關問題