• ベストアンサー

struts 2つの選択肢(select)の連動

struts 初心者です。 今strutsを使ってシステム作成してるんですが、壁にぶつかってます。 行いたい処理は、2つある選択肢(select)で、一つ目のデータが選択されたら、関連する内容のデータを、もう一つの選択肢に表示させるようにしたいです。動的にっていうみたいですが。。 データの件数が多いので、一つ目のデータが選ばれたら、DBに接続して関連するデータを取得するみたいな感じで考えているのですが、方法が全くわかりません。 分かる方がいましたら、情報ください。 宜しくお願いします。。。。。。 図図しいお願いかもしれませんが、サンプルとか載せていただければ、ものすごくありがたいです。

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

  • ベストアンサー
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

それでは最初にOracleでよくサンプルにある HR.EMPLOYEE表をSELEC文で表示するJSPのソースを ご紹介します。 使用しているOracleは10gXEバージョンです。 <%@ page contentType="text/html;charset=Shift_JIS" %> <%@ page import="java.sql.*" %> <% // ログインに必要な情報 String user = "system"; // ユーザ名 String pass = "XXXXXXX"; // パスワード String database = "XE"; // データベース String server = "127.0.0.1"; System.out.println ("Connecting..."); // 接続およびSQL実行 try { // ドライバクラスをロード Class.forName("oracle.jdbc.driver.OracleDriver"); // データベースへ接続 Connection con = DriverManager.getConnection ("jdbc:oracle:thin:@" + server + ":1521:"+ database ,user ,pass); // ステートメントオブジェクトを生成 Statement stmt = con.createStatement(); // クエリーを実行して結果セットを取得 String sql = "select employee_id,first_name,last_name,email from hr.employees where employee_id between 100 and 132"; ResultSet rs = stmt.executeQuery(sql); // 表示 while (rs.next()) { %> <%= rs.getInt("employee_id") + " " + rs.getString("first_name") + " "+ rs.getString("last_name") + " " + rs.getString("email") %><br> <% } // データベースから切断 stmt.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } %> これで表示できればSELECT文のwhere文を修正すれば 1つのSELECT文はできますよね?

その他の回答 (3)

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.4

私も、地域別から都道府県を選択させる程度の処理なら、JavaScriptで十分対応できるとおもいます。(全部で47パターンしかないから) JavaScriptの場合は、ヒントが出ているので、Strutsの場合のヒントを Strutsを使う場合、index.htmlに地域別セレクトボックスを作成しておき、選択されたらactionサーブレットへ飛ぶ様にしておきます。 ANo.2さんの回答に書かれているJSP内の検索ロジックはサーバサイドのactionサーブレット(*.do)のロジックになります。 そして、この検索結果をセッション変数に格納してJSPにフォワードします。 JSP側ではセッション変数から検索結果を取り出して、 <logic:iterate>~~~</logic:iterate> でループさせて表を出力します。

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.3

なんか同じ質問が別の人から飛んでるので 微妙な感じがしますが。 地域別のselectを作って、 JavaScriptでselectの表示非表示を切り替えるのも手かと思いますが。 このくらいは調べられるでしょう…。 ってことで、回答ではなく、アドバイスにしておきます。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

1.使用するDBは? DBによって経験ありなしがあるので。 2.行う処理についてもっと具体的に。  例えば 自動車の車種を選んだらタイヤメーカーを選ぶのか。  それとも自動車の車種を選んだら1000ccか1300ccか1500ccを  選ぶのかどうか? 3.Strutsをご使用ですがこれはフレームワークの手法ですから  普通のJSPやサーブレットの例でもOKですか?

cappu11
質問者

補足

1.使用するDBは、オラクルです。 2.行う処理ですが、地域(関東・中部・関西~)を選んで、 それに含まれる都道府県を選ぶ処理です。 共通のキーを持っているので、それを使いたいです。 各データの値は、 地域(コード、名称) 都道府県(コード、県コード、県名)になります。 3.普通のJSPやサーブレットの例で構いません。 処理方法がよく分かってないので、どんなサンプルでも構いません。

関連するQ&A