从GSP打开新窗口并转发到外部URL

时间:2013-08-03 13:19:59

标签: grails struts

我需要一些帮助。我正在将Struts应用程序转换为Grails。

我正在尝试转换特定操作。

  1. jsp中有一个表单要求用户从下拉列表中选择一个客户,然后用户单击两个按钮之一。
  2. 当用户点击“查看报告”按钮时,onclick事件会调用一个javascript函数,该函数在STRUTS操作类上发出window.open,传递所选客户和所选操作。
  3. 在动作类中,http请求具有一些属性集(request.setAttribute(..)),并且向外部应用程序执行转发。应用程序用于登录时使用set的属性。这是以POST方式完成的。
  4. 我的问题是我不太确定如何使用Grails框架连接此流程。我能够让用户选择一个客户,点击一个actionSubmit按钮,从params读取所选客户,将我的属性添加到'request'然后......我卡住了。

    如何打开新窗口? (尝试使用Struts的javascript方式)。

    此外,我可以向控制器中的外部站点发出重定向,但是重定向是作为GET而不是POST完成的,并且重定向在同一窗口中完成。任何帮助解决这个问题都会很棒。感谢

2 个答案:

答案 0 :(得分:2)

您无法使用POST从服务器重定向用户。

我可以看到一些可能的解决方案:

1。如果您不需要通过服务器验证或请求某些数据,则可以使用:

<form action="http://someotherserver.com" method="post">

2。创建一个控制器,重定向到您自己站点中的页面,并在此页面中进行处理以接收参数,然后使用ajax将用户重定向到另一个域。

答案 1 :(得分:1)

在Grails中,我使用了createLink,并使用'base'属性来执行此操作。

<g:createLink base="${params.dynamicURL}">Link</g:createLink>

我认为这样的事情会起作用,但你可以在这里研究它:http://grails.org/doc/latest/ref/Tags/createLink.html