セッション属性とパラメータをJSPからGWTエントリ ポイントに渡すことができるかどうかは疑問です。私はGWTとStruts2のを統合していると同じようにサーバのセッション変数と属性をGWTエンジンに渡すにはどうしたらいいですか?
。
は今、私の質問は、私たちは、GWTのエントリポイントにJSPからのセッション属性を渡すことができますか? ありがとうございます。
セッション属性とパラメータをJSPからGWTエントリ ポイントに渡すことができるかどうかは疑問です。私はGWTとStruts2のを統合していると同じようにサーバのセッション変数と属性をGWTエンジンに渡すにはどうしたらいいですか?
。
は今、私の質問は、私たちは、GWTのエントリポイントにJSPからのセッション属性を渡すことができますか? ありがとうございます。
I私のアプリケーション、私はJSPに隠されたボックスを使用します。gwt.applicationで値を取得し、その後
<input type="hidden" id="dir_lat" value="<%= request.getattribute("foo") %>"/>
と:
String foo = ((InputElement) doc.getElementById("dir_lat")).getValue() ;
私はnですあなたがセッションオブジェクトを渡す必要がある理由を取得するには、GWT Servlet
でそれを使用したいのですが、GWT UI
のサイドにはありません。
次の方法により、GWTのサーブレットでセッションオブジェクトを取得することができます
HttpServletRequest request = this.getThreadLocalRequest();
HTTPSession session = request.getSession();
そして、あなたが方法を取得するには、以下のユーザーことができる後と設定されたセッション属性:
session.setAttribute("XXX", object);
session.getAttribute("XXX")
EDIT:
:私はまっすぐ前方に解決策がないと思い、この問題を回避するには、次のようにすることができ
EntryPoint オブジェクトにアクセスするonModuleLoad
コールサーバーサイドコードからGWT。
HttpServletRequest request = this.getThreadLocalRequest();
HTTPSession session = request.getSession();
セッションオブジェクトから必要な属性とパラメータを取得し、Beanの形式でクライアントに返します。
GWTエントリーポイントクラスで欲しいです。 – HashimR
答えはJSP + GWT Dictionaryクラスです。ファイルをホストとして(代わりに、htmlファイルの)JSPを使用して
、モジュールのロード時にいつでもGWT後に辞書クラスを呼び出します。
Where to strore config parameteres in GWT?
GWT-Platform login + session management
<script>
var info = {js object structure}; // Use Dictionary class to retrieve info.
</script>
Can GWT Properties be used from the server?
しかし、エントリポイントにセッション情報を渡すことは有利ではないかもしれません。懇願する質問は、セッションが終了し、GWTクライアントがまだブラウザに残っているとどうなりますか?セッションが古くなったら、window.locationを呼び出してGWTクライアントを更新することができます。それは良い習慣ではありません。 AJAXを使用する理由の1つは、クライアントとサーバー間のデータ交換を行いながら、申し訳ありませんが(あなたのページを更新する必要はありません)と言っている必要はありません。
staticの情報は、JSP +ディクショナリの方法でサーバーからクライアントに渡す必要がありますが、セッションでは使用できません。
アーキテクチャではセッションの有効期限が強制的に再認証され、セッション情報はヘッダー(RESTまたはRequestBuilderを使用している場合)として転送するか、コールバック応答データ構造(RPCを使用する場合)の一部として保持する必要があります。
セッションにJavaオブジェクト全体が存在する場合、どうすればjavascript 'var'に割り当てることができますか? – HashimR
辞書オブジェクトが階層マップとしてアクセスされているという事実は除外されています。これは、varがJSオブジェクトの階層になるためです。簡単な例がある場合は、DictionaryのGWT javadocを見てください。すべてのvarは、そのvar名をキーとして辞書にアクセスできます。 –
私は(セッション属性に存在する)Javaオブジェクト全体をサーバー側に転送したいのですが? – HashimR
私は知らない!私はシンプルな(簡単ではない)シリアライズする必要があります/隠しボックス内で逆シリアル化する必要があります。 – Overnuts
オブジェクト全体が必要な場合は、JSONを使用するのが最も簡単です。 struts2 jsonプラグインを見ると、シリアライズが非常にシンプルになります。 – Quaternion