如何从控制器返回一个jsp作为弹出窗口

时间:2013-03-26 15:56:06

标签: javascript jsp spring-mvc dojo

我有一个Spring MVC控制器,它根据特定条件被调用为重定向。除了我希望返回的JSP作为模态窗口之外,一切似乎都工作得很好。有关如何实现这一目标的任何建议?
我希望myModalWindow.jsp作为模态窗口或弹出窗口返回。

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

  return "myModalWindow";
}

编辑1:此调用是通过另一个控制器进行的,而另一个控制器又通过Ajax调用调用。

2 个答案:

答案 0 :(得分:2)

模态窗口= 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>

答案 1 :(得分:0)

使用Javascript库从“/abc/xyz.html”加载模态。 也许您需要更改该jsp的模板以仅包含模态的内容(避免,页眉,页脚和主要html结构)。

没有html标题,调用或任何允许你自己显示模态的内容,它通常是一个具有绝对定位的div和一个半透明的图层,它阻止所有点击它通常用作的网页设计中的模态