dポイントプレゼントキャンペーン実施中!

--エラー内容
致命的: サーブレット 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のプロパティに対するゲッターエラーと感じています。

大変申し訳ありませんが本当に助けてほしいです。
よろしくお願いします。

A 回答 (1件)

確認はしていませんが、JSP の以下の部分を変更すれば大丈夫だと思います。



<bean:write name="array" property="dBBookId"/>
-> <bean:write name="array" property="DBBookId"/>

少し分かりづらいかもしれませんが、property に "dBBookId" と指定していたところを "DBBookId" に変更しています。

なぜ、このようにするかというと、参考 URL を参照していただくと書いてありますが、JavaBeans のプロパティ名には例外規則があります。
通常は get*** という関数の get をのぞいた部分の先頭文字を小文字にしたのがプロパティ名になりますが、先頭 2 文字が大文字の場合には先頭文字を小文字にしません。

このため、getDBBookId() という関数に対応するプロパティ名は "DBBookId" となります。

参考URL:http://java.sun.com/javase/ja/6/docs/ja/api/java …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!