- - PR -
【JSP】ユーザが選んだ情報を元に画面の内容を変えたい
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-07-14 14:46
Javaの初心者です。
今、このような環境でWebアプリケーションの 開発を行っております。 Eclipse 2.1.1 Tomcat 5.0.28 Windows 2000 J2sdk 1.4.2 HTMLのSelectタグでユーザが選んだ情報を元に、 同じページでも出力される項目を表示・非表示にする プログラムをJSPで作っているのですが、 ユーザが選んだ値を引き渡す方法が分からず、困っています。 表示・非表示は、項目によって異なるため、 そのフラグ情報をDBとしてテーブルに登録しています。 (テーブルのイメージ 下の【JSPの概要】を参考にして頂きたいです) Optionのvalue | 項目@ 項目A 項目B 項目C A | ○ × ○ ○ B | × × × ○ C | × ○ ○ ○ この情報を、Javaのクラスでテーブルを読み込み、 一件だけ取得できるような仕組みにしたいと考えています。 処理の流れはこのような感じにしたいと思っています。 【JSP】(HTML・JavaScript)ユーザーがSelectで選んだ情報を取得 (Javaでテーブル読み込み時のキー項目にするため) ↓ 【Java】取得した値を元にテーブルを読み込み一件のフラグデータを取得 ↓ 【JSP】フラグデータを元に画面上の項目を表示・非表示にする JSPのソースはこのような感じです。 【JSPの概要】 <html> 〜ユーザが選ぶ情報です〜 <select name="select" onChange="ab(this.value);" > <option value='A' >test1</option> <option value='B' >test2</option> <option value='C' >test3</option> </select> 〜 〜〜表示内容を変えたい部分を書き込む所です〜〜 <div id=out /> </html> <script lnaguage="JavaScript"> function ab(aval){ このavalをJavaのクラスに引き渡したいのです。 var str; <% 画面を制御する情報を取得するJAVAのクラス getData(ユーザがSelectで選んだ情報); Vector vecData = 取得したデータ; str = "<p>表示を変えたい内容</p> " out.innnerHTML = str; } もし、どなたか良い方法をご存知の方がいらっしゃいましたら、 ご教授宜しくお願い致します。 |
|
投稿日時: 2005-07-14 15:47
こんにちわ。
一番知りたい、わからないこは「selectの値の取り方」でしょうか? であれば、HttpServletRequest#getParameterでご希望の処理が可能 と思います。 他に問題はありますでしょうか。 もしかしてページ更新なしでselectの値を渡したいとかってこと ですかね? |
|
投稿日時: 2005-07-14 16:09
(株)ぽち さん、
早速のご返答ありがとうございます。 そうです。一番知りたいのは、 値の引き渡し方です。 更新といいますか、submitをしない状態で onchangeしたときに値の取得をして、 引き渡したいと考えています。 getParameter()はsubmitしないと 使えないんですよね? |
|
投稿日時: 2005-07-14 16:36
Javaを使ってサーバ側に渡さずに動的に変更したいという事なんですかねぇ〜。
無茶なw [ メッセージ編集済み 編集者: さる 編集日時 2005-07-14 16:37 ] |
|
投稿日時: 2005-07-14 17:31
ページ更新なしでリアルタイム制御を行う場合は
通常のHTMLレベルでは不可能だと思います。 MacromediaFlexなどのリッチクライアントを使用 すれば簡単に実現できますが、jsp,servletでは 無理でしょう。 要件的にページ更新はありえないでしょうか? selectする度に同じ画面にフォワード(更新)する ことで機能としては実現できますが、これでは ダメな理由があったりしますか? |
|
投稿日時: 2005-07-14 17:44
最近流行のAjaxをServletと組み合わせれば実現できそうな気がします。
実際にやったことはないので詳しくは知りませんけど。 |
|
投稿日時: 2005-07-14 17:53
予め全データをHTMLやJavaScriptの変数に用意しておくとか、Ajaxですかね。
Ajaxって、JavaScriptがわかればそんなに難しくないですよ。 昔からあるのに、最近Ajaxという名前になったのが不思議です。 |
|
投稿日時: 2005-07-14 17:55
こんにちは。
POSTなしで、ブラウザ上で全部やろうとすると、 事前にサーバ側から値を取得しておいてJavaScriptの変数に var koumoku1 = <%= ((KoumokuData)request.getParameter("XXX")).getKoumoku1() %>; のように全部セットしておいて、あとはJavaScript駆使でできますか?? 例えば http://www.openspc2.org/reibun/javascript/mouse/006/ のような感じでどうでしょう? |