• ベストアンサー

Javascriptの値をJavaへ渡す方法

JSPからJavascriptで処理後の値を、サーブレットへ渡す方法を教えて頂きたいです。 登録ボタンを押したあと、登録確認アラートが表示されるのですが、 同じ(登録ボタン押下の)タイミングでJavascriptで処理を実行し、 その値をjavaへ渡したいと思っています。 具体的には、 var aaa = a+b; <% aBean.setA(%>'aaa'<%); %> Javascriptで取得した「aaa」をJavaの引数として渡す方法を教えて頂けませんでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

ミリ。アキラメロン。 とこれだけでは何なので。 登録ボタンを押したらそれのイベントハンドラでsubmit前に「登録しますか?」が画面上に出るんだよね? すると画面上のJavaScriptはそこで人間がOKかキャンセルを押すまで停止する。 という事は、イベントハンドラで「登録しますか?」を出す「前」にサーブレットに値を引き渡さないといけない。 これは、同期でも非同期でもいいけどAJAX的な何かを使うしか手がなさそうだね。 jQueryを使っているのであれば、 $(".submit").click(function() { var aaa = a+b; $.ajax({ url: "hogehoge.do", cache: false, data: { "aaa" : aaa }, type: "html" } ).done(function(data) { // 何か }).fail(function(data) { // 何か }); confirm("登録確認アラート"); }); みたいな感じで。むしろ今のトレンドとしては登録ボタンを押す→同期AJAXで画面を更新せずにサーバー(サーブレット)と通信して入力チェックとかもろもろの何かをする→登録確認アラートを表示→OKだったら改めて登録サーブレットにsubmitする、みたいな流れが今のトレンド的にシャレオツかも知れない。 jQueryのajax関数の使い方はバージョンで結構変わるので今使っているjQueryのバージョンでやり方を検索しましょう。今jQueryを使っていないというのなら、ajaxのためだけでも使う価値はあると思うよ。 ajaxでサーブレットに引き渡す値はJavascriptで取得したaaaの値をそのまま突っ込めばいい。ajaxはクライアントサイドはJavascriptなのでそのままの値が使える。

yukitokibo
質問者

お礼

ありがとうございます! 何とか解決できました!

その他の回答 (1)

  • hue2011
  • ベストアンサー率38% (2801/7249)
回答No.1

よくわからないんですが、javaはどこで動いているのでしょうか。 少なくともjavascriptはブラウザの上でHTMLの世界で動いています。 javaが同じ環境で動くとすれば、appletでしょうか。 embededですね。 すでに動作空間が違いますね。 どこかの領域にデータを置いて、アプレット側でループスキャンしていないといけないですね。 そうすると、このアプレットを動作制御するためのシーケンスマップをきっちり作らなければならない上、相手が死んでいるかもしれないときの自分の動作の定義もかなりむつかしいですね。 サーバーで動いているとすれば、データをサブミットしないといけないですね。 postにせよgetにせよ、そういう伝達方法は当たり前のやりかたですけど、クライアントの動作のタイミングでjavaのサーブレットが動くなんていう連動はあり得ません。 そういう意味で、動作環境が想像できません。 何をしたいのでしょうか。

yukitokibo
質問者

補足

ご回答ありがとうございます。 確認アラートで一度処理がストップするので、 「inputtype="hidden"」を使って渡すことはできないかと考えています。

関連するQ&A