ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Struts!!!!!コミュのJavaScriptからRequestにオブジェクトを渡す方法

  • mixiチェック
  • このエントリーをはてなブックマークに追加
こんばんは.同じ質問をJavaScriptの方にも書いたのですが,何となく,こちらの方も分かるのでは,と書き込みした次第であります.

現在,Struts + JSP + JavaScript + JSTL で
Webアプリケーションを作っています.

頻繁にリロードされるJSP上に,
OnLoad時に渡されるパラメータで分岐し,Windowを開くScriptを作りました.
win = 0
function openWindow(status, form){
if(status == 0){
win = window.openWindow("hogehoge","honyaWin",...)
}
}

ところがこの画面,何度もリロードされることから,
パラメータの状態によっては,サブウィンドウも何度もリロードされてしまう.
そこで,win.closed がfalseじゃない時,つまりWindowが開かれていない状態の時のみ実施するように変更しました.

win = 0
function openWindow(status, form){
if(status == 0){
if(win.closed != false){
win = window.openWindow("hogehoge","honyaWin",...)
}
}
}

ところが,windowの状態を持ってる変数winが,
リロード時に破棄されてしまうため,
この分岐,結局使えない.
それどころか,リロード後は正常に機能しなくなる.(winオブジェクトが初期化されているため,win.closedに失敗する.)

んー.

そこで,
上記のwindowの状態を保持する変数winを,Requestスコープに格納したい.
そうすれば,変更も少なく,修正によるバグも極力防ぐことができると思うのです.

しかしながら,JavaScriptからRequestパラメータに対して値を格納する方法が分かりません.

どなたかご存知でしたらご教示頂きたく.
宜しくお願い致します.

コメント(2)

始めまして。
最近このコミュに参加したイステと申します。

JavaScriptのパラメータをServletへRequestで渡す方法ですが
対象のJSPにhiden属性のinputタグを作成して、リロードされる前にJavaScript上で渡したいパラメータをそのhidden属性のオブジェクトに格納する。 と言う方法はどうでしょうか?

で、Smokin'さんが書かれているScriptを
win = <%= request.getParameter("hoge")%>
function openWindow(status, form){
if(status == 0){
if(win.closed != false){
win = window.openWindow("hogehoge","honyaWin",...)
}
}
}
と言う風にJavaScript上の変数winへServletから返された子ウィンドウの状態を表すパラメータを直接設定してみると行けそうです。
イステさんありがとうございます.
上記で書き忘れていたのですが,実はこのページ,FormをSubmitしないんですね.
なので,Hidden属性に入れるというやり方は使えませんでした.

結局,元の仕様を変えない限り無理だろうという話になり,現在仕様改正中です.

お騒がせしました.

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Struts!!!!! 更新情報

Struts!!!!!のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング