2016-07-04 15 views
0

Struts2。アクションはDBに対してクエリを実行し、結果をJSPで表示します。
結果はレコードのリストです。このリストの行をクリックすると、dbクエリを呼び出す別のアクションが呼び出され、別のウィンドウ(ポップアップ)にレコードの詳細が表示されます。
このポップアップでは、レコードを更新してDBの変更を保存できます。それを行うために、私はDBの変更を行った後に、レコードを更新することができるように、2番目のアクション(詳細ポップアップを表示するアクション)をリダイレクトするアクションを呼び出します。
問題はですが、ポップアップの後ろに、リストが表示されているメインウィンドウがまだ表示されていますが、リストにはまだ更新されたレコードの古いデータが表示されています。メインウィンドウとポップアップを同時に更新するには(Struts2アプリ内)?

ポップアップとリストを同時に更新(リフレッシュ)する方法はありますか?

PS - 制約。
1 - 私が言ったように、私はリストの代わりにメインウィンドウに詳細をアップロードすることができないので、私はポップアップとリスト(それはプロジェクトの要件です)を表示する必要があります。
2 - Chromeのアプリケーションは、前述のように「onbeforeunload」という悲惨な使い方をしている必要がありますが、必ずしも解決策ではない場合もあります。ポップアップではなく、移動するだけです。

+0

いいえ、不可能です。 –

+0

いくつかのjavascriptを使用してください。 –

+0

ありがとうございます。 Aleksandr、もう少し詳しいことがありますか? トラック、ヒント、正確に例ではないのですか? どのように私はスクリプトを使用する必要がありますか? –

答えて

0

jQueryとAJAXのほんの少しで簡単に達成できます。

  • divにロードする部分的なページを表すHTMLレスポンスで応答するStruts2アクションにAJAXリクエストを送信して問題の行を選択します。この応答フラグメントには、ロード時に開くjQueryモーダルダイアログボックスが含まれています。
  • モーダルボックスでレコードを編集します。
  • 保存ボタンをクリックすると、フォームがAJAXを使用して別のStruts2アクションに送信されます。このアクションは、JSONまたは別の部分的HTML応答を返すことができます。私はしばしば部分的なHTML断片を扱う方が簡単だと感じます。
  • 部分的なHTMLフラグメントには、ユーザーが変更できるように、さまざまなフィールドエラーが示されたフォームが含まれています。
  • 成功すると、部分的なHTMLフラグメントには、おそらくサーバーからのAJAXを介して元のテーブルが応答したデータをリロードするためのイベントを発生させる小さなjavascriptフラグメントが含まれています。さらに、javascriptフラグメントは、開いたダイアログウィンドウを閉じるように指示し、おそらくDOMから自身を削除します。

はい、これは実行可能ですが、コメントに示されているようにJavaScriptが必要です。

+0

Narosこんにちは、遅い応答のために申し訳ありませんが、私は一時的に問題を棚上げしました。私はあなたのアドバイスに従って、私のニーズに合わせて調整しようとします。アプリケーションから誰かがajaxの標準関数(Dojo、JQuery - DateTimePickerを除く)をすべて削除し、ソースコードに置き換えることを決めたので、単純なJavaScriptでも同様です。 Thanx –

関連する問題