Struts ArrayListデータの画面出力方法

このQ&Aのポイント
  • MySQLのテーブルデータをActionとFormにコーディングして取得し、フォームに格納する方法
  • idallに格納したデータをJSP画面に表示させるためのコーディング方法
  • <logic:iterate>と<bean:write>を使ったデータ表示方法についてのご指導をお願いします
回答を見る
  • ベストアンサー

Struts ArrayListデータの画面出力方法

MySQLのテーブルデータを下記の様にActionとFormにコーディングして取得し、それをフォームに格納するところまでできました。 -----アクション(抜粋)----------------------------------- ArrayList tmpArrayList = new ArrayList(); int n=0; while(rs.next()){ tmpArrayList.add(rs.getString("id"));   n++; } aform.setIdall(tmpArrayList); -------------------------------------------------- -----フォーム(抜粋)----------------------------- private ArrayList idall; public ArrayList getIdall() { return idall; } public void setIdall(ArrayList idall) { this.idall=idall; } -------------------------------------------------- この後、idallに格納したデータをJSP画面に表示させるにはどうコーディングすればいいのでしょうか? JSPファイルに<logic:iterate>と<bean:write>を使って表示させたいのですが・・・。 ご指導のほどよろしくお願いいたします。

  • Java
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • process9
  • ベストアンサー率29% (81/272)
回答No.1

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <bean:define id="id_list" name="struts-configで指定したフォーム名" property="idall"/> <html:html> <logic:iterate id="id_no" name="id_list"> <bean:write name="id_no" /> </logic:iterate> </html:html> かな?実際やってないので未検証コードです(^^

liony_2003
質問者

お礼

ありがとうございます。 試したところばっちりできました。 あとは応用していこうと思います。 このたびはどうもありがとうございました。

関連するQ&A

  • java strust 動的にDBのデータをJSP画面で表示する 方法

    --エラー内容 致命的: サーブレット action のServlet.service()が例外を投げました javax.servlet.jsp.JspException: Bean array のプロパティ dBBookTitle に対するゲッターメソッドがありません --JSPソース-- <logic:notEmpty property="bookId" name="RETURNSCREEN"> <logic:iterate id="array" name="RETURNSCREEN" property="bookId" > <bean:write name="array" property="dBBookId"/> </logic:iterate> </logic:notEmpty> --Javaアクション-- ReturnScreenForm rsf = ( ReturnScreenForm ) form ; ReturnScreenFormDB rsfd = new ReturnScreenFormDB( ) ; // = ( ReturnScreenFormDB ) form ; //ArrayListクラスは大きさが決まっていない配列となる,その為動的にオブジェクト配列を宣言できる ArrayList<ReturnScreenFormDB> array = new ArrayList<ReturnScreenFormDB>( ) ; //DB接続処理の呼び出し DatabaseAccess.Open( ); rs = DatabaseAccess.executeQueryMethod( SQL_CODE ) ; String stmember_id ; //DBデータ(member_id )取得して格納する受け皿 String ststatus ; //DBデータ(status )を取得して格納する受け皿 String stbook_id ; //DBデータ(book_id )を取得して格納する受け皿 String stbook_title ; //DBデータ(book_title )を取得して格納する受け皿 int flg_Retrieval = 0 ; int CountNo = 0; //検索された行数文ループ while( rs.next( ) ) { flg_Retrieval = 1 ; stmember_id = rs.getString("member_id"); //DBのmember_idを格納 ststatus = rs.getString("status"); //DBのmember_idを格納 stbook_id = rs.getString("book_id"); //DBのmember_family_nameを格納 stbook_title = rs.getString("book_title"); //DBのmember_family_name_kanaを格納 //セッターに取得データをセットする rsfd.setDBBookId( stbook_id ) ; rsfd.setDBBookTitle( stbook_title) ; array.add( rsfd ); rsf.setBookId( array ); } //END while( rs.next( ) ) --JSP画面Bean-- private String memberId; // ="0003"; //会員ID private ArrayList<ReturnScreenFormDB> bookId; // ="0041"; //本ID private ArrayList<ReturnScreenForm> bookTitle; // = "御徒町"; //本タイトル //セット本ID public void setBookId( ArrayList<ReturnScreenFormDB> array ) { this.bookId = array ; } //ゲット本ID public ArrayList<ReturnScreenFormDB> getBookId( ) { return this.bookId ; } //セット本タイトル public void setBookTitle( ArrayList<ReturnScreenForm> bookTitle ) { this.bookTitle = bookTitle ; } //ゲット本タイトル public ArrayList<ReturnScreenForm> getBookTitle( ) { return bookTitle ; } //セット会員ID public String getMemberId( ) { return memberId ; } //ゲット会員ID public void setMemberId( String memberId ) { this.memberId = memberId; } --JSPDBBean-- private String dbbookTitle; // = "御徒町"; //DB本タイトル private String dbbookId; // ="0041"; //DB本ID //セット本タイトル public void setDBBookTitle( String dbbookTitle ) { this.dbbookTitle = dbbookTitle ; } //ゲット本タイトル public String getDBBookTitle( ) { return this.dbbookTitle ; } //セット本ID public void setDBBookId( String dbbookId ) { this.dbbookId = dbbookId ; } //ゲット本ID public String getDBBookId( ) { return this.dbbookId ; } --struts-config.xml-- <form-beans> <form-bean name="RETURNSCREEN" type="rentalPackage.ReturnScreenForm"> </form-bean> </form-beans> <action path="/Return" type="rentalPackage.ReturnScreenAction" name="RETURNSCREEN" scope="request" parameter="submitPropertyReturnScreen" validate="false"> <forward name="successReturnScreen" path="/ReturnScreen.jsp"/> </action> --質問-- JSPの画面表示はできました。 しかし、番号を入力後検索をDBにかけると エラーが出力されます。Beanのプロパティに対するゲッターエラーと感じています。 大変申し訳ありませんが本当に助けてほしいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • strutsでArrayListの中の配列の表示の仕方。

    タイトルどおりなんですが。よくわかりません。例えば以下のようです。numberに紐づいた複数のデータが配列に入っています。 public static Bean setBean (int number, String[] strArray){ bean.setNumber(number); bean.setArray(strArray); return bean; } たいぶ、はしょってますがこんな感じでbeanにintのnumberとStringの配列をsetして、受け取り側でそのbeanをArrayList(array)にaddしています。それをjspで表示したいのです。jspは下のようです。 <logic:iterate name="form" property="array" id="list" > <bean:write name="list" property="number"> ここにstrArrayを表示したい。 </logic:iterate>  といった具合です。どお書けばいいんでしょうか?ご教授お願いします。

    • ベストアンサー
    • Java
  • 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"; ----------------------------------------------------------

  • strutsプログラミングで、こんなことできますか?

    strutsプログラムで、一般にはsubmitボタン実行後にactionが走りますが、チェックボックスやラジオボタンにチェックを入れるとactionが走るようにはコーディングできるのでしょうか? ラジオボタンにチェックするたびに、チェックした情報データをFORMに格納aform.setName(data1)したいのです。

    • ベストアンサー
    • Java
  • strutsプログラミングでの疑問

    初心者質問で恐縮です。 以下のように(1)アクションフォームと(2)JSPに設定して、idが未入力(null)でサブミットされた場合の(3)アクションをif文で分岐させたいのですが、条件の設定はどのようにすればいいのでしょうか? (1)アクションフォーム(java)の設定(抜粋)   private int id;  //IDをint型に設定 (2)登録フォーム(JSP)の設定(抜粋)   <input type="text" name="id" > <%--IDを登録する--%> (3)アクション(java)の条件分岐の設定(抜粋)   int input_id = aform.getId();   if(input_id==null){   } nullにするとエラーになってしまいます。

    • ベストアンサー
    • Java
  • Strutsのデータ受け渡しについて

    画面遷移時のデータの引継ぎについて。 画面A→画面B とデータを引き継ぎたい状態です。 画面AにはDBから取得した値を一覧表示しています。 --Action-- TestLogic testLogic = new TestLogic (); ArrayList<datas> list = testLogic.getDatas(); request.setAttribute("sendMail", list); 補足:ArrayList<datas> listにはdatas.classが格納されています。 datasクラスはDB項目に合致したgetterとsetterをもった値保持用のクラスです。 --JSP-- <nest:iterate id="sendData" name="sendMail" indexId="idx"> <html:checkbox name="sendData" property="checkBox" indexed="true"/> <bean:write name="sendData" property="user_id" /> <html:hidden name="sendData" property="user_id" indexed="true"/> </nest:iterate> の様になっています。 一覧表示されたデータ内のチェックボックスをチェックしたものだけを次画面で取得したいと考えていますが、次画面のACTIONにて request.getAttribute("sendMail"); を行ってもNullが返ってきてしまいます。 Enumerationを使うことも考えたんですが、全てのHidden項目が返ってきてしまうのでデータの判別が出来ません。特に明細が複数行あるときには困難です。 こういったデータの引継ぎはどのように行えばよいのでしょうか? どうぞご教授下さいますよう、お願い申し上げます。

    • ベストアンサー
    • Java
  • 【struts】<logic:iterate>で出力したtextボックス内のデータを更新する方法

    <logic:iterate>でBeanの中のリストをtextボックスで表示しています。 その中の値を変更して、Actionでゲットしたいのですが、 値が入っていません。 または、色々ためしても、もともとBeanに入っていた古い値しか取ってくることができません。 どうやったらデータの更新が可能になるか教えてください!!

    • ベストアンサー
    • Java
  • Struts の logic タグの使い方?

    Action でセッションにオブジェクトのリストを登録し、その後、Show.jsp 側でセッションにオブジェクトのリストがある場合は、そのリストを表示するプログラムを作ろうとしています。 実行すると スコープ request にBean ActionFormForSearchResult がありません とエラーになってしまいます。 ActionFormForSearchResult は、オブジェクトのリストを表すオブジェクトで Action が呼び出されたときにセッションに登録します。 jsp の記述は、次のような感じです。 <logic:iterate id="element" name="ActionFormForSearchResult" scope="request"> ><bean:write name="element" property="intCorporationCode" /> </logic:iterate> よろしくお願いします。

    • ベストアンサー
    • Java
  • strutsプログラミングでJAVASCRIPTの設定

    Strutsプログラムで、JSPに下記コーディング(抜粋)をして実行すると、 HTTPステータス 500 - javax.servlet.ServletException: Cannot retrieve mapping for action /# というエラーが表示されます。 この原因と、解決策を教えて頂けないでしょうか? 目的は、 「JAVASCRIPTを使って、1つのformに複数のボタンをつくり、それぞれ異なるactionを実行させたい」 わけです。 エラーメッセージから、主な原因はaction="#"にしていることだと思うのですが、どう変えればいいかが分かりません。 <script language="JavaScript">  function jump_1(){   document.MainForm.action="pages/StrutsSample_1.do";   document.MainForm.submit();  }  function jump_2(){   document.MainForm.action="StrutsSample_2.do";   document.MainForm.submit();  } </Script> <html:form method="post" action="#" >  <html:button property="MainForm" value="追加" onclick="jump_1()" />  <html:button property="MainForm" value="修正" onclick="jump_2()" />  <html:radio property="checked" value="1" />  <logic:iterate id="itm" name="key">   <bean:write name="itm" />  </logic:iterate><br> </html:form>

    • ベストアンサー
    • Java
  • Java struts Formを分ける

    Java Struts1.3.10 1jspにつき1Formとし、A.jspからB.jspへ遷移させようと思っています。 しかしA.jspは正常に表示されるのですが、遷移後エラーが発生します。 Bean AForm のプロパティ AList に対するゲッターメソッドがありません 遷移後に見てほしいのはBFormなのですが、AFormを見てしまっています。 どのようにすればBFormを参照することができますでしょうか? struts-config.xml <action attribute="AForm" input="/pages/A.jsp" name="AForm" path="/Result" type="jp.co.elephan.rental.action.Aaction" scope="session" validate="true" parameter="insert"> <forward name="Result" path="/pages/B.jsp" /> <forward name="Return" path="/pages/A.jsp" /> </action> <!-- --> <action attribute="BForm" input="/pages/B.jsp" name="BForm" path="/Return" type="jp.co.elephan.rental.action.Baction" scope="session" validate="true" parameter="yes,no"> <forward name="Result" path="/pages/A.jsp" /> <forward name="Return" path="/pages/B.jsp" /> </action> 以上です。

    • ベストアンサー
    • Java

専門家に質問してみよう