- PR -

Servet+JSP+JavaScriptでのデータ受け渡し

1
投稿者投稿内容
ume
ベテラン
会議室デビュー日: 2001/09/19
投稿数: 55
投稿日時: 2001-11-02 18:44
またまたお世話になります。

ServletからJSPを呼び出して処理を行うモジュールを作成しています。
JSPで画面のコードを記述しているのですが、その中でJavaScriptも使用しています。
画面を出力して入力項目に入力されたとき、
その値をJavaScriptのコード(document.form.input.value)
を利用して取得した後、JSPで用意している変数に格納することは
可能でしょうか?

渡す方法、またそれは無理だというご回答
何かご存知の方、ぜひ教えて下さい。
説明が不十分な点はご質問下さい。
どうぞよろしくお願いします。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-11-02 23:06
1. JSP はサーバで実行される
2. JavaScript はクライアント(ブラウザ)で実行される
3. サーバ-クライアント間の通信は基本的に HTTP(s) のみである

ことを考えてみて下さい。

クライアントからサーバにデータを送るには、HTTP Request を飛ばすしかないわけです。その方法は…GET or POST ですよね(基本的には)
さて、JavaScript で取得したデータを GET or POST に載せないといけません。どうしたものか…

方法1) open("http:.....&hoge=" + 変数) など、GET メッセージにする。URL にデータがみえてしまいますが。

方法2) form の hidden フィールドにデータをつっこむ。DOM で。
コード:
<form method=post action="...">
   <input type="hidden" name="hiddendata">
          :
</form>


としておき、JavaScript で <input type=text> に値をほーりこむのと同じ方法で、hiddendata に値をつっこみます(document.form..... = なんちゃら)。

ただし、DOM の扱い方はブラウザに依存しますし、JavaScript をユーザが止めている場合もなきにしもあらずですから、そういう使い方はしないほうが無難でしょう。

ume
ベテラン
会議室デビュー日: 2001/09/19
投稿数: 55
投稿日時: 2001-11-05 10:19
いつもご回答ありがとうございます。

DOMは扱ったことがないので勉強したいと思います。

勉強する前に恐縮ですが質問させて下さい。
Scriptの中でそのままhiddenフィールドにデータをいれるのと
DOMを使うのではどのような違いがあるのでしょうか?
(作成中のものはボタンを押したときのonClickイベントで
Scriptを実行しようとしています。)
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2001-11-05 15:54
あぁ、DOM と書いてしまいましたが、要は JavaScript で代入するってことです。

document.form['hoge'].input['fuga'].value = ほげほげ みたいに(長いことこの方法は使ってないので記憶はあやふや:P)。

このアクセス方法(すなわち、ドキュメントがどういう構造に見えて、どういうアクセス方法があるか == ブラウザの DOM の作り方)がブラウザやバージョンによって違うので、いちいち調べるのも面倒なので、あまりおすすめしません、ということです。

一般向けのサイトならば、JavaScript が off でも最低限の作業はできるような方法を準備すべきですね。
ume
ベテラン
会議室デビュー日: 2001/09/19
投稿数: 55
投稿日時: 2001-11-05 16:20
そうでしたか。ご回答ありがとうございます。

Javaから話が外れますが実はDOMというキーワードから
DynamicHTMLの入口に入りかけているのですが
もし参考になるサイトなどご存知であれば教えて下さい。
(DHTMLもブラウザやバージョンによってかなり違うようですが。。)
1

スキルアップ/キャリアアップ(JOB@IT)