2013-03-26 19 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,并且在页面上有一个半透明层,可以阻止所有点击它通常用作网页设计中的模式

相关问题