JavaBeansの配列の値取得方法について

このQ&Aのポイント
  • JavaBeansで値を計算し、多次元配列に格納しています。それをjsp側で受け取る方法がわからずに困っています。
  • Beanの取得の宣言方法が根本的に違っているのでしょうか?いったんjsp側で配列に格納し直さなければならないのでしょうか?Beanの作成時になにか行わなければならないのでしょうか?
  • ご教授のほどよろしくお願いいたします。
回答を見る
  • ベストアンサー

JavaBeansの配列の値取得方法について

いつもお世話になっております。 JavaBeansで値を計算し、多次元配列に格納しています。 それをjsp側で受け取る方法がどうしてもわからずに困っています。 ちなみにサーブレットは使用していません。 [JavaBeans:]                ・                ・                ・ public class FallPersonSQL { public int check[][] = new int[7][4]; public int[][] getCheck(){                (略) return check; } } ******************************************************** [jsp:]                ・                ・                ・  <input type="text" value="<jsp:getProperty name="fallperson" property="check" />" />                ・                ・                ・ これだけですと、[[I@1fc7299 や [[I@198c113 と更新するたびに値が変わり表示されます。 ・Beanの取得の宣言方法が根本的に違っているのでしょうか? ・いったんjsp側で配列に格納し直さなければならないのでしょうか? ・Beanの作成時になにか行わなければならないのでしょうか? どなたがご教授のほどよろしくお願いいたします。

  • Java
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
回答No.2

お世話になります。 Beanの中で public int[][] getArray(){ return … } みたいな,配列を返すメソッドがありますよね? んで,JSPで, <jsp:useBean id="test" class="SampleTest" scope="page"></jsp:useBean> とやってた場合, <% int[][] sample = test.getArray(); for(int i=0; i<sample.length() ; i++) { for(int j=0 ; j<sample[i].length() ; j++) { out.println(sample[i][j]); out.println("<BR>"); //これはおまけ } } %> で出力できたと思いますが, 違ってたらごめんなさい。

miammi
質問者

お礼

naganaga_001様 ご回答ありがとうございました。 期待していた値を取得することができました。 本当に助かりました。 私もnaganaga_001様のように知識を増やし、プログラミングできるようになりたいです。 初歩的な質問に丁寧に答えていただき本当にありがとうございました。

その他の回答 (1)

回答No.1

jspの中でBeanの配列を取得して, ぐるぐる回してout.printなんかで 表示するしかないような気がします。

miammi
質問者

補足

naganaga_001様 アドバイスありがとうございます。 >jspの中でBeanの配列を取得して・・・ jsp側で <% int[][] check = %> <jsp:getProperty name="fallperson" property="check" /> <% ; %> と記述してみましたが、 ・・・互換性のない型 検出値 : void 期待値 : int out.write("\r\n"); ^ エラー 1 個 とエラーが返ってきました。 いったん変数に格納、という作業がいけないのでしょうか? 配列の取得は <jsp:getProperty name="***" property="***" /> の部分のpropertyで配列の位置を指定してあげることはできるのでしょうか? それともBean側で細かな戻り値を指定しておくべきなのでしょうか? 初歩的な質問なのでしょうが、 ご教授のほどよろしくお願いいたします。

関連するQ&A

  • JavaBeansにDBの値を格納

    JavaBeansにDBの値を格納したいのですがやり方がよくわかりません。 どなたかわかる方教えていただけないでしょうか? ちなみにこんなやり方でやってみました。 DAOは int i = 0; while(rs.next()){    jb.setId(i,rs.getString("syouhinid"));    i++; } JavaBeansは private String[] id = null; public void setId(int i, String val){ this.id[i] = val; } public String getId(int i){ return id[i]; } こんな感じです。 部分的ですがこんな感じです。 ソースコードを全部乗せると長くなるので、全部乗せられませんが、 いまいちJavaBeansにDBの値を格納するやり方がわからないので 皆さん色々教えてください。宜しく御願い致します。

  • JSPとJavaBeansについて

    JSPとJavaBeansを用いて情報を共有したいと考えています。 値を取得した後に配列に入れています。 ArrayList list = new ArrayList(); while(rs.next()){ int op = rs.getInt("op"); list.add(new Integer(op)); } int[] in = new int[list.size()]; for (int i = 0; i < list.size(); i++) { in[i] = ((Integer)list.get(i)).intValue(); この後に、in[i]の要素をBeansに送り、別のJSPでその値を使いたいと考えています。 ただ、Beansで配列のデータを扱う場合にはどのようにすれば宜しいのでしょうか? アドバイスを頂けると助かります。 宜しくお願いします。

  • JSPでHashMap・配列の変数の値を扱う方法について

    サーブレット側でHashMap型の「map」に値をセットしてしています。 mapは配列となっています。 ■サーブレット -------------------------------------- HashMap map[] = new HashMap[10];  ・・省略・・ getRequest().setAttribute("map",map) -------------------------------------- 上記でセットした値をJSP側で値を参照したいと思っているのですが、 HashMap・配列の値をJSP側でどのように読み込む/記述したら良いのか 分かりません。 初歩的な質問で申し訳ございませんが、よろしくお願いいたします。

    • ベストアンサー
    • Java
  • JSP内での配列の値取得方法。

    こんにちは。 -------- (略) <SCRIPT LANGUAGE="JavaScript" > function NextPage(no){ with( document.frm1 ) { hidNO.value = no; hidPlanId.value = 「ここに配列から取得した値を表示したい」; action = "Next.jsp"; submit(); } (略) <FORM name="frm1"> <% for(int i=0; i<(DBより取得した配列).length; i++) { ROW(HashMap継承の配列クラス) row = rows[i]; %> <INPUT TYPE="hidden" ID="hidKey" NAME="hidKey" VALUE="<%= i番目の値(1)%>" > <INPUT TYPE="hidden" ID="hidKey" NAME="hidKey" VALUE="<%= i番目の値(2)%>" > <TD><INPUT TYPE="button" NAME="btnDet<%= i %>" VALUE="詳細表示" onClick="NextPage('<%= i %>');" > </TD> <% } %> </FORM> ******* 上記のhidkeyのvalue値をJavaScript内でi番目の値を 取得するにはどのように記載したらよいのでしょうか・・・。 他のクラス等を使っているため、うまくコードが表現 できていないかもしれませんが、 もしこれでわかった方、ぜひ教えてください。

    • ベストアンサー
    • Java
  • C# 配列の配列(多次元配列?)

    C#において、配列の配列中に格納した値を、検索することを 行いたいのですが、格納した値そのものを見ることができません。 まだ、C#を始めて間もないので、配列に格納する時点で、 不備があるかも知れませんが、お願いします。 やりたいこと ・テキストファイル内にある値を、2次元配列または、多次元配列に格納 ・配列に格納した値で、データチェックなどを行う予定  テキストファイル内のデータは、下記内容となり要素数も固定ではなく変動する   A=1,2,3・・・   B=11,22,33・・・ 実際のソースは、 //配列 ArrayList list = new ArrayList(); //配列格納 1レコード毎用 ArrayList listtmp = new ArrayList(); while ((strGenderTextLine = objReader.ReadLine()) != null) {  string strBuffer;  //「=」前の値格納用変数  string[] strBuffer2; //「=」後の値格納用配列  listtmp=null;  //strtmpに「=」前の値を格納  strtmp = TextLine.Split('=').GetValue(0).ToString();  //strtmp2に「=」後の値を格納(配列)  strtmp2 = TextLine.Split('=').GetValue(1).ToString().Split(',');  for (int i = 0; i <= strtmp2.Length - 1; i ++)  {   //[i,0]に、「=」前の値を代入   if (i == 0)   {   listtmp.Add(strtmp);   }   else   {   listtmp.Add(strtmp2[i].ToString());   }  }  //list配列にlistTmp配列を格納(配列の配列)  list.Add(listtmp);  intT = intT + strtmp2.Length;  //行数カウント  intTLine = intTLine + 1;  } ここから、配列「list」内に入っている値を閲覧することができる方法を教えていただければと思います。 宜しくお願いいたします。

  • [arduino]数値の大きなデータを二次配列へ

    シリアル通信で得たデータを二次元配列へ格納するために、 以前では、 if(Serial.available()>120){ for(int k=0;k<8;k++){ for(int l=0;l<15;l++){ //読み込んだ値を配列に代入 matrix[k][l]=Serial.read(); } } } このようなやり方で読み込んだ値を二次元配列に代入していたのですが、 128個以上のデータを扱いたい場合、Serial.availableでは保持できず、困っています。 方法として、 (1)一つずつデータを読み込み、128回ループを繰り返し配列に貯めていく。その後配列を2次元配列に代入する。 (2)一つデータを読みこんだら二次元配列の1行目1列目のドットに格納、もう一つデータを読みこんだら二次元配列の1行目2列目のドットに格納…というように、 読みこんだデータをそのまま二次元配列のそれぞれの場所へ格納していく。 というような二つの方法を思いついたのですが、 (1)の方法では、配列にデータを貯蓄していくコードをこのように↓書いたのですがうまくいかず、 for(int i=0;i<128;i++){ if(Serial.available()>0){ data[128] = Serial.read(); } } (2)の方法では、データを二次元配列のそれぞれの場所へ格納していく指定方法が分かりませんでした。 正しい書き方や、良いアイデアをお持ちの方がいましたら、是非御教授お願いします。

  • 配列をセッションに割り当てた後で

    javaBeanでDBにアクセスして、取得した値を配列に格納します。その配列をサーブレット側でgetメソッド使って取得し、セッションに割り当てます。その後、JSP側でセッションを通して配列の各要素を取り出し表示させたいのですが<%= session.getAttribute("Date") %>←(Dateが配列)では配列の各要素ではなく配列そのものが取り出されるのか、 [Ljava.lang.String;@737371 のような文字が表示されてしまいます。 セッションで割り当てられた配列の各要素の値の取得のやり方がわかる方どうかご教授お願いします。

    • ベストアンサー
    • Java
  • C#で配列の値をチェックするメソッドを書きたい

    C#の配列についてお教え頂けませんでしょうか? CSVファイルから1行読取り、配列に格納しています。 string[] rowdata; string x; int y; double z; TextFieldParser Parser = new TextFieldParser(FILEPATH, Encoding.GetEncoding("shift_jis")); while (!Parser.EndOfData) { //1行読取り rowdata = csvParser.ReadFields(); //読み取った値を変数に x = rowdata[0]; //string y = rowdata[1]; //int z = rowdata[2]; //double } rowdata[0~3]を変数に格納する前に、データのチェックをおこないたいです。 例えば、rowdata[1]はint型変数に格納されます。しかしrowdata[1]に格納された値が「A1」とあった場合、int型変数yには格納できずエラーが起こります。 よって、rowdata[1]に数値以外の文字列があったら「0」に置き換えるなどの処理をいれたいです。 なので、配列を受け取ってデータチェックをするメソッドを作りたいと思いますが、どのように作っていいかがわかりません。 1つのメソッドでint、double、stringかどうかの、チェックを行いたいですが、そのようなことは可能なのでしょうか? 下記のように3つメソッドを作って、データをメソッドに渡しチェックを行なうのがいいのでしょうか? string CheckData(string[] arr){}; int CheckData(int[] arr){}; double CheckData(double[] arr){}; やりたい事は、 メソッド(配列を受取る) rowdata[0]が渡された場合、中身はstringかのチェック。問題なければ格納されている値を返す。問題があれば、何らかの処理。 rowdata[1]が渡された場合、中身はintかのチェック。問題なければ格納されている値を返す。問題があれば、何らかの処理。 rowdata[2]が渡された場合、中身はdoubleかのチェック。問題なければ格納されている値を返す。問題があれば、何らかの処理。 以上のような事です。宜しくお願い致します。

  • *値の受け渡し方法が分かりません*

    失礼いたします。 お昼過ぎからjavateaです。 質問させて下さい。 今、jspファイルの中にサーブレットを、include演算子を用いて埋め込もうとしています。 <jsp:include page = "/servlet" flush="true" /> ところが、このサーブレットに値をどう受け渡せばいいのか分かりません。 jsp→サーブレットなら普段サーブレット側でrequestのgetParameterとかを使って値を受け渡しているのですが、jspの中に埋め込まれている場合どうすればいいのでしょうか? 埋め込まれているものは同じページだと解釈してjspソース内で受け取った値をそのまま使ってよろしいのでしょうか?(そんな訳ないですよね・・・) かなり混乱しています。 教えてください、よろしくお願いします。m(__)m

    • ベストアンサー
    • Java
  • 配列の値の削除について

    JSP間でデータの受け渡しの際に、配列の要素で0以外の値だけを受け渡したいと考えています。 例えば、 for (int i = 0; i < list.size(); i++) {  in[i] = ((Integer)list.get(i)).intValue(); } で、inの中の0の要素を削除というようなことをして、session.setAttributeで送りたいと考えているのですが、 よく解らず、困っています。 アドバイス頂けたら幸いです。 宜しくお願いします。

    • ベストアンサー
    • Java