私は小さな Struts 1.2.4 電話帳アプリに取り組んでいます。このアプリには、データを追加、検索、編集/削除するためのフォームが 1 つの JSP に含まれています。私の問題は、ワイルドカード検索の実行時に得られる ResultSet を表示することにあります。プログラムの流れは次のとおりです。
ユーザーが検索文字列を入力します。
リクエストは DispatchAction クラスの search() メソッドに渡され、次に「モデル」クラスの searchContact(String name , HttpServletRequest request) メソッドが呼び出されます。
このメソッドは、PreparedStatement を使用して DB で SELECT クエリを実行します。結果セットが返され、その値が ArrayList< PhoneBook > に格納されます。クラス PhoneBook は、getter と setter を持つ 'c_name' と 'p_num' の 2 つのフィールドを持つ JavaBean です。
logic:bean および logic:iterate タグは、JSP で ArrayList< PhoneBook > の内容を出力するために使用されます。
JSP で:
<html:form action="/PhoneBookAction.do" method="post" >
<table>
<tr>
<td>Name</td>
<td><html:text property="name"/></td>
</tr>
</table>
<br>
<html:submit property="method" value="Search"/>
<br><br><br>
<table align="center" border="2" bordercolor="royal blue">
<thead>
<tr>
<td><b> Select </b></td>
<td><b> Name </b></td>
<td><b> Phone Number </b></td>
</tr>
</thead>
<logic:iterate id="search_resId" name="phonebookform" property="search_res">
<tr>
<td> <bean:write name="search_resId" property="c_name" /> </td>
<td> <bean:write name="search_resId" property="p_num" /> </td>
</tr>
</logic:iterate>
</table>
</html:form>
これにより、通常、「Bean がどのスコープにも見つかりません」というエラーが発生するか、何も出力されません。いくつかの同様のスレッドで提案されている修正を試みましたが、どれも機能していないようです。解決を楽しみにしています。ありがとうございました。