0

助けが必要です。Struts アプリケーションを Grails に変換しています。

変換しようとしている特定のアクションがあります。

  1. ユーザーにドロップダウン リストから顧客を選択するように求めるフォームが jsp にあり、ユーザーは 2 つのボタンのいずれかをクリックします。
  2. ユーザーが [View Reports] ボタンをクリックすると、onclick イベントが JavaScript 関数を呼び出します。この関数は、STRUTS アクション クラスで window.open を発行し、選択した顧客と選択したアクションを渡します。
  3. アクション クラスでは、http 要求にいくつかの属性セット (request.setAttribute (..)) があり、外部アプリケーションへの転送が実行されます。アプリケーションがサインオンのために使用する属性。これは POST として行われます。

私の問題は、Grails フレームワークを使用してこのフローを接続する方法がよくわからないことです。ユーザーが顧客を選択し、actionSubmit ボタンをクリックし、選択した顧客を params から読み取り、属性を「リクエスト」に追加してから、行き詰まりました。

新しいウィンドウを開くには? (Strutsで行われたようにJavaScriptの方法を試しました)。

また、コントローラーで外部サイトへのリダイレクトを発行することもできますが、リダイレクトは POST ではなく GET として行われ、リダイレクトは同じウィンドウで行われます。これをレイアウトする際の助けは素晴らしいでしょう。ありがとう

4

2 に答える 2

2

POST を使用してサーバーからユーザーをリダイレクトすることはできません。

私はいくつかの可能な解決策を見ることができます:

1. 一部のデータを検証または要求するためにサーバーを通過する必要がない場合は、これを使用できます。

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

2. 自分のサイトのページにリダイレクトするコントローラーを作成し、このページでパラメーターを受け取る処理を作成し、ajax を使用してユーザーを別のドメインにリダイレクトします。

于 2013-08-04T17:23:47.997 に答える
1

Grails では、これを行うために「base」属性を指定して createLink を使用しました。

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

このようなものがうまくいくと思いますが、ここで調べることができます: http://grails.org/doc/latest/ref/Tags/createLink.html

于 2013-08-05T19:42:09.603 に答える