- - PR -
sessionに登録した文字列をJavascriptで取得したい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-07-22 14:24
度々、失礼します。
WinXP & Tomcat5.5 & struts1.2 & IE6の環境で開発してます。 AjaxからAction内でセットしたString文字列をJavascript内で 取得したいのですが、どのように取得すればよいのでしょうか? よろしくお願いします。 (Actionの処理は正常にセットしてます。) 1.Action HttpSession session = request.getSession(); session.setAttribute("KEY", "AAA:BBB"); 2.Javascipt // 通信結果取得成功 if (xmlHttp.readyState == 4) { ret = session.getAttribute('KEY'); //←ここで取りたい [ メッセージ編集済み 編集者: 未記入 編集日時 2008-07-22 14:41 ] [ メッセージ編集済み 編集者: 未記入 編集日時 2008-07-22 14:46 ] | ||||||||
|
投稿日時: 2008-07-22 15:21
Ajaxのリクエストに対するレスポンスに、
セッションの内容を含めるだけです。 都合上できないのであれば、 再度セッションの値を返す専用のAjax用アクションを用意すればよいでしょう。 | ||||||||
|
投稿日時: 2008-07-22 15:51
かつのりさん、いつもありがとうございます。
Ajax用のActionを起こして前述のようにセットしているのですが・・。 // 通信結果取得成功 if (xmlHttp.readyState == 4) { <% String dt = (String)session.getAttribute("KEY"); %> var ret = "<%= dt %>"; alert(ret); Ajaxのレスポンスが帰ってきたら、ここで取得できると思っているんですが、 nullしか表示されませんでした。 どこか間違いはありますでしょうか? よろしくお願いします。 | ||||||||
|
投稿日時: 2008-07-22 16:12
Ajax以前に、JSPとHTMLの関係(処理順序や処理環境)を勉強する必要がありますね。
表示されたHTMLを右クリックしてソースを見れば分かるはずですが…。 [ メッセージ編集済み 編集者: mio 編集日時 2008-07-22 16:12 ] | ||||||||
|
投稿日時: 2008-07-22 16:46
ありがとうございます。
右クリックでソースを見てもnullと出てます。 そうですね。はじめにソース表示でJava部が表示されますね。 ん〜 xmlHttp.responseText での取得の事をおっしゃってるんでしょうか? | ||||||||
|
投稿日時: 2008-07-22 17:54
Ajaxの通信以前にセッションの値は既にブラウザに送り出されています。 サーバとクライアントの関係をもうちょっと理解してからの話ですね。
そうです。 | ||||||||
|
投稿日時: 2008-07-22 18:24
かつのりさん、ありがとうございます。
しかし、このxmlHttp.responseTextですが、alertで出しても全くの空でして・・。 Action部をこのようにしても同じでした。 1.Action HttpServletRequest request request.setAttribute("KEY", "AAA:BBB"); | ||||||||
|
投稿日時: 2008-07-22 18:30
いや…純粋にJavaScriptのソースとして考えてください。
var ret = "null"; と書いてあるんだから、null以外表示されるわけがないでしょう。 ブラウザが実行するのは、あくまで右クリックして表示されるソースですよ。 ご希望の処理をしたいなら、Ajaxのリクエストに対するレスポンスとして、送り返さないと。 元々のjspには書けません。 |