我正在开发一个小型 Struts 1.2.4 电话簿应用程序。该应用程序在单个 JSP 中包含用于添加、搜索和编辑/删除数据的表单。我的问题在于显示在执行通配符搜索时获得的 ResultSet。这是程序的流程:
用户输入搜索字符串。
请求被传递给 DispatchAction 类的 search() 方法,该方法又调用“模型”类的 searchContact(String name , HttpServletRequest request) 方法。
该方法使用 PreparedStatement 对 DB 执行 SELECT 查询,该语句返回一个结果集,其值放在 ArrayList<PhoneBook> 中。PhoneBook 类是一个 JavaBean,它有两个字段 'c_name' 和 'p_num' ,带有 getter 和 setter。
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”错误,或者什么也不打印。我尝试了一些类似线程中建议的修复程序,但它们似乎都不起作用。期待解决方案。谢谢你。