Javaのstruts1.3でエラーが発生しました

このQ&Aのポイント
  • Javaのstruts1.3でエラーが発生し、新たなEntryWorkFormオブジェクトの配列をセットする際に型の不一致エラーが出ています
  • DB接続は正常に行われており、検索結果の行ごとにEntryWorkFormオブジェクトを生成して配列に追加しています
  • JSP画面で選択肢を動的に出力するためのセレクトボックスを作成しており、画面遷移時にエラーが発生しています
回答を見る
  • ベストアンサー

java のstruts1.3です。

java のstruts1.3です。 Cannot invoke newStrutsKadai.EntryWorkForm.setArrayDB on bean class 'class newStrutsKadai.EntryWorkForm' - argument type mismatch - had objects of type "java.lang.String" but expected signature "java.util.ArrayList" と言うエラーがでます。 以下javaのソースです。DB接続は完璧に出来ています。 public final class EntryWorkForm extends ActionForm { private static final long serialVersionUID = 1L; private String cmbOsName; ArrayList<EntryWorkForm> array = new ArrayList<EntryWorkForm>( ) ; public void reset( ActionMapping map, HttpServletRequest req ) { //必要な部分だけ抜粋 //検索された行数文ループ while( rs.next( ) ) {//本マスタテーブル 検索された行数文ループ String stOSName = rs.getString("OSName"); //上記の2行を丁寧に記述した EntryWorkForm obj = new EntryWorkForm( stOSName.toString() ); array.add( obj ) ; } //END while( rs.next( ) ) this.setArrayDB( array );//ここでエラーエラーエラー } /****************************************************************************************/ private ArrayList<EntryWorkForm> arrayDB = new ArrayList<EntryWorkForm>( ); //セット オブジェクト配列 public void setArrayDB( ArrayList<EntryWorkForm> arrayDB ){ this.arrayDB = arrayDB; } //ゲット オブジェクト配列 public ArrayList<EntryWorkForm> getArrayDB ( ) { return this.arrayDB ; } /****************************************************************************************/ public String getCmbOSName ( ) { return this.cmbOsName; } public void setCmbOSName ( String cmbOsName ) { this.cmbOsName = cmbOsName; } public EntryWorkForm( ) { } //コンストラクタ 引数あり EntryWorkForm ( String cmbOSName ) { System.out.println("テスト用で作成したコンストラクタが呼ばれています。 ReturnScreenFormDB.java"); cmbOsName = cmbOSName; } 質問です--- JSPでセレクトボックスに動的に出力しています。 JSP画面でボタンを押して画面遷移をすると上記のエラーが出ます。

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

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

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

had objects of type "java.lang.String" but expected signature "java.util.ArrayList" この一文に当てはまる場所が原因のはずよ。 型の不一致がないか確認してみて?

関連するQ&A

  • サーブレットから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を実行したとき、処理がとまってしまいます。

  • StrutsのiterateタグでListに格納されているBeanの要素を表示する方法

    タイトルのように Strutsのiterateタグを使用して、 ArrayListに格納されているBeanの要素を表示しようとしています。 具体的には public class Test { // 実際にはmainではないですが。 public static void main( String[] args ) { TestBean tbean = new TestBean( "あいうえお", "10" ); ListBean lbean = new ListBean(); lbean.setList( tbean ); } } public class TestBean { private String name; private String age; public TestBean( String name, String age ) { this.name = name; this.age = age; } } public class ListBean { private ArrayList list; public ListBean(){ } public void setList( TestBean bean ) { this.list.add( bean ); } public ArrayList getList() { return this.list; } } というような構成で、JSPでiterateタグを利用して、 listに入っているBeanから、更にnameとageを取得して 表示させたいのです。 ご回答お願いします。

  • 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
  • 「型 ArrayList は総称ではありません・・・。」エラーについての問題です。

    コンニチハ、javaの初心者s-unです。 Eclipse(Ver:3.1.1)でJavaのプログラムを書いています。 *********************************** import java.util.ArrayList; class collectionTest1{ public static void main(String args[]){ ArrayList<String> array = new ArrayList<String>(); } } *********************************** エラーメッセージは 「型 ArrayList は総称ではありません。引数 <String> でパラメーター化できません。」 JDK準拠>>コンパイラー準拠レベル5.0になっています。 原因をお教え頂けますと幸いです。 よろしくお願い申し上げます。

    • ベストアンサー
    • Java
  • Javaのコンストラクタについて教えてください

    Javaを勉強している初心者です。 次のようなプログラムがあります。 このプログラムでclass aおよびclass bのデフォルトコンストラクタ a() {}とb() {}をコーディングしていないとコンパイルエラーになります。 b() {}についてはclass bのパラメータのあるコンストラクタb(String s)がサブクラスclass cから明示的に呼ばれていないのでデフォルトコンストラクタb() {}をコーディングしないとエラーになる…と考えればよいのでしょうか。 それでは、a() {}はなぜ必要なのでしょうか。 どなたか教えてください。 class a { a() {} a(String s) { System.out.println("In a's constructor..."); System.out.println(s); } } class b extends a { b() {} b(String s) { super(s); System.out.println("In b's constructor..."); System.out.println(s); } } class c extends b { c(String s) { System.out.println("In c's constructor..."); System.out.println(s); } public void some() { System.out.println("something..."); } } public class appJ01 { public static void main(String args[]) { c obj = new c("Hello from Java!"); } } 

  • Struts2についての質問

    Struts2についての質問 いつもお世話になっております。 <s:radio>のcheckedについて教えて頂ければと思います。 現在のradio部分のjspは <s:radio name="aaa.bbb"list="array" value="<s:property/>"/> と記述しております。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=48216&forum=12 こちらの質問と同じだと思い、value値に値を入れても変わらず・・・。 Actionのarrayは以下のように定義しております。 ArrayList<String> array = new ArrayList<String>(); array.add("こんにちは"); array.add("こんばんわ"); array.add("おはよう"); public ArrayList<String> getArray(){ retrun this.array; } 最初に表示されるラジオボタンにデフォルトでチェックをいれたいのですが どのように記述すればいいのでしょうか。 ご指摘頂ければ幸いです。 宜しくお願い致します。

  • Javaのプログラムについて教えてください!

    Genericsを使ってエラーの出ないようにするにはどうすればいいですか? import java.util.*; public class Sample{ public static void main(String[] args){ ArrayList ary = new ArrayList(); ary.add("Mac"); ary.add("Wiindows"); ary.add("Linux"); for(Object str:ary){ System.out.println((String)str); } } }

    • ベストアンサー
    • Java
  • またjavaでの問題です

    今回ArrayListを使って"Bye"、"Hi",""Hello"を表示するプログラムです ソース乗せたほうが早いので載せます import java.util.*;; class Act{ private String phrase="A"; public Act(String p){ phrase=p; } } class Stage2 { public static void main(String[] args){ ArrayList<String> strList =//String用のArrayListを作成 new ArrayList<String>(); strList.add("Bye");//Bye,Hi,HelloをArrayListに追加 strList.add("Hi");//Bye,Hi,Helloを出力したいです strList.add("Hello"); for(int i=0; i<strList.size(); i++){ strList.get(i); } } エラーはなく、例外処理もありません ただ出力しないだけです System.out.println(phrase)を書かない理由は呼び出しかたがわからないので書きませんでした どうかアドバイスなどの御助力お願いします

    • ベストアンサー
    • Java
  • javaにおいてコンパイルをすると次のようなエラーが出てきます。

    javaにおいてコンパイルをすると次のようなエラーが出てきます。 力不足で解決することができません。 どうか力を貸してください。 エラーは以下のように出てきます。 よろしくお願いします。 シンボルがみつかりません シンボル: コンストラクタ DrawPanelMouseHandler(DrawPanel) 場所 : DrawPanelMouseHandler の クラス mouseHandler = new DrawPanelMouseHandler(this); mouseHandler = new DrawPanelMouseHandler(this);import java.awt.*; import java.util.ArrayList; import javax.swing.JPanel; import javax.swing.JButton; public class DrawPanel extends JPanel { ArrayList<Shape> shapeList = new ArrayList<Shape>(); DrawPanelMouseHandler mouseHandler; public void paintComponent(Graphics g) { super.paintComponent(g); for(Shape shape: shapeList){ shape.draw(g); } } public DrawPanel(){ mouseHandler = new DrawPanelMouseHandler(this); this.addMouseListener(mouseHandler); this.addMouseMotionListener(mouseHandler); ShapeFactory circleFactory = new CircleFactory(); UIToolButton circleButton = new UIToolButton(circleFactory, this, "Circle"); this.add(circleButton); } public void addShape(Shape s) { shapeList.add(s); repaint(); } } import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class UIToolButton extends JButton implements ActionListener{ DrawPanelMouseHandler mouseHandler; ShapeFactory factory; public UIToolButton(ShapeFactory factory, DrawPanelMouseHandler mouseHandler, String text) { super(text); this.addActionListener(this); this.mouseHandler = mouseHandler; this.factory = factory; } public void actionPerformed (ActionEvent ae) { mouseHandler.setShapeFactory(factory); } }

  • javaの出力結果について

    javaのプログラムを記述してますが、出力結果がnullになってしまいます。 解決策を教えて下さい。 ------出力結果------- null null null null null null -----------下記、ソースになります。------------ public class LibApp { public static void main(String[] args) { Library my_lib= new Library(); my_lib.addBook(new Book("吾輩は猫である","夏目 漱石","小説")); my_lib.addBook(new Book("奥の細道","松尾 芭蕉","小説")); my_lib.showBooks(); } } import java.util.ArrayList; import java.util.List; public class Library { List<Book> bList; public Library() { bList=new ArrayList<Book>(); } public void showBooks() { for (Book str : bList) { str.showBook(); } } public void addBook(Book book) { this.bList.add(book); } } public class Book { String title; String author; String content; public Book(String title, String author, String content) { title = this.title; author = this.author; content = this.content; } public void showBook() { System.out.println(title); System.out.println(author); System.out.println(content); } }

    • ベストアンサー
    • Java

専門家に質問してみよう