-PR-
解決済み

JSPで<SELECT>の中にDBから持ってきたデータを反映させたい

  • すぐに回答を!
  • 質問No.99903
  • 閲覧数2446
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 32% (45/139)

urizakaです。
現在、Jbuilder+SQL-Serverでプログラムを作っているのですが、そのなかで
SELECTタグで選択できるデータはDBから持ってきたものとし、尚且つそのタグ
部分に表示される初期値がDBから持ってきたものとしたいのですが、これは
どのようにすればよいのでしょうか?
(DBデータ)
 データベーステーブル名:m_Auth
 フィールド名  code_auth name_auth
1 責任者
          2 リーダー
         3 一般メンバー

 データベーステーブル名:m_staff
 フィールド名  code_staff name code_auth
1 urizaka 1
2 fukutome 2
3 fujiwara 3
4 isezaki 3

(JSPソースコードよりSELECT部分のみ抜粋)
  <SELECT name = "s_code_auth">
<%
int i;
 /** tantoushaallbeanはこのJSPで使うメソッドが入ったBeanファイルです**/
for( i = 0; i < tantoushaallbean.getcode_auth().size(); i++ ){
out.println("<option value=\"" +
/** 下記はcode_authを全て持ってくるメソッドです**/
tantoushaallbean.getcode_auth().elementAt(i) + "\">" +
/** 下記はname_authを全て持ってくるメソッドです**/
tantoushaallbean.getnameauth().elementAt(i) + "</option>" );
}
%>
</SELECT>

現在では、SELECTタグで選択できるデータはDBから持ってきたものが表示
されますが、初期状態はDB「m_staff」のcode_authがどの値であろうと、
code_authが1の責任者になっている状態です。
 すみませんが、上記の件について方法をご存知の方がいらっしゃったら
ぜひ宜しくお願いします。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル7

ベストアンサー率 57% (12/21)

こんにちは。
intをStringに変換。お好きな方法でどうぞ。
・String s = "" + int;
・String s = Integer.toString(int);
・String s = String.valueOf(int);

Stringをintに変換。
・int i = Integer.parseInt(String);

ちなみにintとIntegerは異なるものですのでご注意下さい。
お礼コメント
urizaka

お礼率 32% (45/139)

urizakaです
参考になりました。
ありがとうございます。
投稿日時 - 2001-07-06 10:07:23
関連するQ&A
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル7

ベストアンサー率 57% (12/21)

こんにちは。 初期表示したい<OPTION>タグにSELECTED属性を付けて下さい。 <SELECT name = "s_code_auth"> <OPTION VALUE="">xxx</OPTION> <OPTION VALUE="" SELECTED>yyy</ ...続きを読む
こんにちは。
初期表示したい<OPTION>タグにSELECTED属性を付けて下さい。

<SELECT name = "s_code_auth">
<OPTION VALUE="">xxx</OPTION>
<OPTION VALUE="" SELECTED>yyy</OPTION>
<OPTION VALUE="">zzz</OPTION>
</SELECT>

yyyが初期選択されます。
補足コメント
urizaka

お礼率 32% (45/139)

urizakaです

なるほど、SELECTEDですね。
ということはループ文を使って、該当するものが現れるまで処理を続ければ
…と思い、以下のようなソースコードを書いてみたのですが

<%
int i;
for( i = 0; i < tantoushaallbean.getcode_auth().size(); i++ ){
out.print("<option value=\"");
out.print(tantoushaallbean.getcode_auth().elementAt(i));
if (parseInt(tantoushaallbean.gets_code_auth()).equals(i)){
out.print("selected");
}
out.print("\">");
out.print(tantoushaallbean.getauthname().elementAt(i));
out.print("</option>\n");
}
%>
 しかし、parseInt(tantoushaallbean.gets_code_auth()).equals(i)
でトラブルが起き、処理が上手くいきませんでした。
 他にも
 i == parseInt(tantoushaallbean.gets_code_auth())
や、一度別のテキストボックスに入れて処理してみるという方法も試し
ましたが駄目でした…
 すみませんが引き続き、分かる方どうぞ教えてください
 宜しくお願いします。
投稿日時 - 2001-07-05 16:46:53


  • 回答No.2
レベル7

ベストアンサー率 57% (12/21)

こんにちは。 A.equals(B)はオブジェクトの比較ですのでintの比較では使用できません。 if文ではm_staff.code_authと一致する<OPTION>タグにSELECTEDを付ける のですから、 ・Stringの場合 if([m_staff.code_auth].equals([m_auth.code_auth])){} ・intの場合 if([m_st ...続きを読む
こんにちは。
A.equals(B)はオブジェクトの比較ですのでintの比較では使用できません。
if文ではm_staff.code_authと一致する<OPTION>タグにSELECTEDを付ける
のですから、

・Stringの場合
if([m_staff.code_auth].equals([m_auth.code_auth])){}

・intの場合
if([m_staff.code_auth] == [m_auth.code_auth]){}

[]内はそれぞれの値

となると思うのですが...
間違っていたらごめんなさい。
補足コメント
urizaka

お礼率 32% (45/139)

urizakaです
なるほど、intとStringだと比較の仕方が違うと…
でも、この場合はメソッドで持ってきた値はStringで、変数iは
intなので、普通の方法で比較はできないことになってしまうんですよ
ね。
では、intの値をStringと比較したい場合はどうするのでしょう?
(いや、原則としておかしいことではありますが。確か、Stringをintに、
あるいはその逆にCastすることはできなかったと思いますし…)

すみませんが、この件についてご存知でしたら教えてください。
投稿日時 - 2001-07-05 18:18:45
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ