• 締切済み

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で配列のデータを扱う場合にはどのようにすれば宜しいのでしょうか? アドバイスを頂けると助かります。 宜しくお願いします。

  • brin
  • お礼率50% (4/8)
  • Java
  • 回答数1
  • ありがとう数2

みんなの回答

noname#49664
noname#49664
回答No.1

JavaBeansというのは、EJBなどではなく、普通のBeanクラスを利用する、ということですね。であれば、単純にそのインスタンスをアトリビュートとしてどこかに保管し、必要に応じてそれを取り出して処理するだけです。例えば、 public class MyBean { private int[] array; public void setArray(int[] arr){ array = arr; } public int[] getArray(){ return ar; } } こんな具合にBeanを定義していたとして、これをセッションに保管しておくとすると、JSPからは、 // int[] arr; 定義済みとする session.setAttribute("array",arr); arr = (int[])session.getAttribute("array"); こんな感じでint配列をBeanに設定したり取り出したりできるでしょう。

brin
質問者

お礼

回答ありがとうございます。 実際に、試してみたいと思います。

関連するQ&A

  • JSPとjavaの問題

    ResultSet rs = db.getResultSet("SELECT * FROM SHAINLIST "); ArrayList list = new ArrayList(); while(rs.next()) { int state = rs.getInt("attendance"); list.add(new Integer(state)); } int[] in = new int[list.size()]; for (int i = 0; i < list.size(); i++) { in[i] = ((Integer)list.get(i)).intValue(); } %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>JSPでDB接続</title> </head> <body> <table> <tr><td>欠席</td><td>><%= countNum(-1, in) %></td></tr> <tr><td>未定</td><td><%= countNum(-1, in) %></td></tr> <tr><td>出席</td><td><%= countNum(-1, in) %></td></tr> </table> 以下のエラーがでてきますが、どういう意味でしょうか。 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません: JSPファイル: /jsp/tokei.jsp の中の26行目でエラーが発生しました The method countNum(int, int[]) is undefined for the type tokei_jsp 23: </head> 24: <body> 25: <table> 26: <tr><td>キ鄲ハ</td><td>><%= countNum(-1, in) %></td></tr> 27: <tr><td>フ、ト�</td><td>3</td></tr> 28: <tr><td>スミタハ</td><td>3</td></tr> 29: </table> よろしくおねがいします。

    • ベストアンサー
    • Java
  • 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
  • 配列の値の削除について

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

    • ベストアンサー
    • Java
  • サーブレットのリストをJSPを渡すとき認識しない

    org.apache.jasper.JasperException: Exception in JSP: /keiji/Top.jsp:41 38: List list = (List)request.getAttribute("Beansid"); 39: %> 40: <% 41: for(int i=0; i<list.size(); i++){ 42: Beans bean = (Beans)list.get(i); 43: bean.getsid(); <%@page import="package.Beans"%> <%@page import= "java.util.*" %>とインポートを使用しました。 ArrayListとIteratorも使用できませんでした。 WindowsXP Tomcat5.5、JSP2.0です。 JavaSE all in one Eclipse3.4 です。 これは、サンプルのコピーを使用しました。 出来る限り何をやってもだめで、調べても見つかりません。 JSPの問題かSEの問題か、さっぱりわかりません。 分かる方いましたら、教えてください。よろしくお願いします。

  • サーブレットからArrayListにBeanを格納しJSPで使用する方法

    はじめまして、以下の問題ですが、わからず困っているので 質問させていただきます。 PCはWindowsXPで Eclipse Version: 3.4.1を使用し Tomcat5.5,jre6を使用しています。 研修の課題なのですが サーブレット内でBeanをArrayListを使って、動的確保したものを JSPに渡し、ArrayListに入ったBeanを取り出し、 そのBeanにsetした値を表示させるというプログラムを作っています。 JSPの部分がまったくわかりません。 JSPに配列はわたったようなのですが、JSPでのArrayListの取り出し方 などが、調べてもまったく解決しません。 もしわかる方がいましたら、教えてください。よろしくお願いします。 内容は以下です。 ///////////サーブレット//////////////////////////// ArrayList<Beans> beansid = new ArrayList<Beans>(); i=0; while(rs.next()){  sid = rs.getInt("sid");  sname = rs.getString("sname");  spass = rs.getString("spass");  Beans inbean = new Beans();  inbean.setsid(sid);  inbean.setsname(sname);  inbean.setspass(spass);  beansid.add(inbean); } request.setAttribute("beansid",beansid); //Beansクラス///////////////////// public class Beans{ private int sid; private String sname; private String spass; public int getsid(){ return sid; } public void setsid(int sid){ this.sid = sid; } public String getsname(){ return sname; } public void setsname(String sname){ this.sname = sname; } public String getspass(){ return spass; } public void setspass(String spass){ this.spass = spass; } } //JSPのコード///////////////////////////////// <%@page contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS" %> <jsp:useBean class="java.util.ArrayList" id="beansid2" scope="request"/> <jsp:useBean class="java.lang.String" id="beansid" scope="request"/> <%@page import="keiji.Beans"%> <%@page import= "java.util.*" %> <%@page import="java.sql.*"%> <%@page import="javax.servlet.*"%> <%--下のclassの所はBeansというのでも試してみました。--%> <jsp:useBean class="java.util.ArrayList" id="beansid2" scope="request"/> <%-- ArrayList beansid = (ArrayList)request.getAttribute("beansid"); --%> <%-- Iterator it = beansid.Iterator(); --%> ArrayList Iteratorと使ってみたのですが、 自分にはわけが分からず、JSPを実行したとき、処理がとまってしまいます。

  • 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でのArrayListの表示について困っています

    以下のようにしてスレッドNoが同じものだけ表示したいと考えております。 servletの「text」という変数にはすべての値が格納されているところまでは確認できました。 それをJSPにて表示したいのですが、どのようにすれば出力されるのかわかりません。 どなたかお教えいただければと思います。 宜しく御願い致します。 --------------------------------------------------------- java /** * *TEXTテーブルからスレッドNoが同じものを返すメソッド * * */ public ArrayList selecttext(int no)throws SQLException{ ArrayList<Textbeen> list = new ArrayList<Textbeen>(); TextDAO kei =new TextDAO(); Connection db=kei.createConnection(); Statement sttSql=db.createStatement(); ResultSet rs=sttSql.executeQuery("SELECT * FROM TEXT WHERE KB_TH_NO='"+no+"' "); while(rs.next()){ String name=rs.getString("KB_NAME"); String tino =rs.getString("KB_TITLE_NO"); String title = rs.getString("KB_TITLE"); String mail = rs.getString("KB_MAIL"); String text = rs.getString("KB_TEXT"); String pass = rs.getString("KB_TITLE_PASS"); String date = rs.getString("KB_TIME"); int th_no = rs.getInt("KB_TH_NO"); Textbeen thread = new Textbeen(name, title, tino, mail, text, pass, date, th_no); //TO(Threadオブジェクト)を、保持するリストに追加 list.add(thread); } kei.closeConnection(db); return list; } ---------------------------------------------------------- servlet ArrayList text = new ArrayList(); try{ text = list.selecttext(TH_no); } catch(Exception e){ e.getStackTrace(); } request.setAttribute("test", text); String nextPage = "/view/user/ThreadTop.jsp"; ----------------------------------------------------------

  • JSPを用いて、サーバに配列のデータを送信し、サーバから返された文字列

    JSPを用いて、サーバに配列のデータを送信し、サーバから返された文字列を表示させるようなページを作りたいと思っています。 APサーバで処理させた文字列を表示させたいのです。 データの作成までは以下のような感じで配列のデータを作ることまではわかるのですが、 それをAPサーバを介してJSPに表示させる方法がよくわかりません。。 for (int i=0; i < 10000; i++) { String str= "test" + i ; ArrayList list = new ArrayList(); list.add(str); } JSP入門ページを見ていても、テキストボックスやチェックボックスに入力された値をボタンを押したときに サーバに送信する、といった内容ばかりで…。 イメージとしては以下を考えているのですが、、、どう書いたら良いのか…。 A:上記の配列データを作成して、サーバに送信   (javascriptの関数などを利用してサーバ送信することはできるのか?どうやって渡すの?) B:Aから送られてきた配列データをHTMLの<table>などを利用して表示 サンプルのコードなど簡単でも良いので教えていただけると助かります。 抽象的な質問ですみません。

    • ベストアンサー
    • Java
  • jspでのArrayListの値の表示

    jsp上でBeanで以下のように設定されている ArrayList<ArrayList<Integer>> a; a.add(new ArrayList<Integer>); a.add(new ArrayList<Integer>); a.add(new ArrayList<Integer>); a.get(0).add(0); a.get(0).add(1); a.get(1).add(2); a.get(1).add(3); a.get(1).add(4); a.get(1).add(5); a.get(2).add(6); a.get(2).add(7); a.get(2).add(8); aのような行と列が不定のArrayListの全ての値をjspの画面上に  値 値 値  0  2  6  1  3  7    4  8    5 といったようにテーブルで表示したいのですがjspにどのような既述をすればよいでしょうか? クリックしたときの処理などの導入や項目を増やすなど拡張する場合があるので 以下のような形とレイアウトが同じようになると望ましいです <td> <table> <tr>値</tr> <tr>0</tr> <tr>1</tr> <tr>2</tr> </table> </td> <td> <table> <tr>値</tr> <tr>3</tr> <tr>4</tr> <tr>5</tr> </table> </td> <td> <table> <tr>値</tr> <tr>6</tr> <tr>7</tr> <tr>8</tr> </table> </td>

  • jspのListのListの表現方法について

    Listの中にListを入れる処理をJava側でしています。 そのListをリクエストに投げているのですが JSPでの表現方法がわかりません。 Java側では ArrayList[] a_list = new ArrayList[10]; a_list[j]= new ArrayList<Dto>(); a_list[j].add(list.get(i)); という感じで作っています。 logic:iterateをネストしても うまく取れません。 どなたか、分かりましたら、よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう