• 締切済み

配列とBeanって同時に使用可能でしょうか?

始めまして。 画面のようなものをA~Jで初期化した配列をつくり、テキストボックスに入れた任意の数値と、ボックスに対応したアルファベットに紐付ける方法ってありますでしょうか? 具体的にはセッションを使用し、ボックス内の任意の数値を覚えさせ、数値からアルファベットを検索するものを作ろうと考えております。 Aの横のボックスに5と入力し、次の画面のテキストボックスに5と入れたら、次の次の画面で「5=A」という風にアルファベットを検索できるようにしたいです。 セッションのところは上手くいきましたが、上記のようにすると「数値=数値」となってしまいます。 Beanを使うと、 public void setbox(int a){ box = Integer.toString(a[i]); となり、「a[i]」が使えないみたいです。 Beanにこだわらず、実現できれば方法は問いません。 できればシンプルな方がいいですが・・・ かなり行き詰ってます。 ご教示、宜しくお願いします。

みんなの回答

  • kana_m
  • ベストアンサー率40% (26/65)
回答No.2

> テキストボックスに入れた任意の数値と、ボックスに対応したアルファベットに紐付ける方法 設計次第ですが、Javaが5以上ならEnum、それ未満ならMapでしょうか。 画面側で既に静的にボックス数が設定されているようですので、 Keyをアルファベット、Valueを入力された数値とすれば アルファベット指定で扱えると思いますよ。 シンプルさは、それこそ設計次第な気がします。 このアルファベットが静的な定数で、必ず対応する値を持つなら 逐一Mapを作るよりEnumにする方がシンプルで見易くなります。 Keyとなるアルファベットが動的であるなら、Mapの方が良いでしょうね。

noname#121048
質問者

補足

ご回答ありがとうございます。 とりあえず、Mapを調べてみましたがHTML内でも使用可能なんでしょうか? MapやEnumの存在を初めて知りまして・・・ Beanを使用していないVer.のコードはこんな感じです。 ----------------------------------------------------- <HTML><HEAD><TITLE>入力画面</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </HEAD><BODY> <FORM ACTION="****.jsp" METHOD="Post"> A~Jに対応する数値を0~9の範囲で入力してください。<BR> <% String a[] = {"A","B","C","D","E","F","G","H","I","J"}; for(int i = 0; i<a.length; i++){ %><%= a[i] %><INPUT TYPE = "text" NAME = "box<%= i+1 %>"><BR> <%}%> <BR> <INPUT TYPE="submit" VALUE="入力"> <INPUT TYPE="submit" VALUE="開始画面"><BR> </FORM> </BODY></HTML> ------------------------------------------------------- >Keyをアルファベット、Valueを入力された数値とすれば >アルファベット指定で扱えると思いますよ。 テキストボックスの中身をということでしょうか? Value="****" のようにすると、テキストボックスのデフォルト値が「****」になるのではなかったでしょうか?

回答No.1

>public void setbox(int a){ >box = Integer.toString(a[i]); 引数aは配列ではないのですから動作するわけがないですね。 質問内容については質問の意味が理解できなかったので回答は控えさせていただきます。

関連するQ&A