首先先贴出来 java 文件代码,和 jsp 页面代码,用于对比参照
BookAction.java 代码
//搜索图书功能 public String searchBook() throws Exception{ Map<String, Book> keyBooks = new HashMap<String, Book>(); //创建 Map 对象,用于存储书籍的对象 for (Book a : Book.bookList) { //对 Book 类中的 ArrayList 进行便利,然后获取符合条件的对象 if (a.getBookName().toLowerCase().contains(keyword.toLowerCase())) { keyBooks.put(a.getBookNo(), a); //添加到 Map 中 application.setAttribute("keyBooks", keyBooks); //在将其添加到 application 中,用于前台的获取。 } } if (!keyBooks.isEmpty()) { return SUCCESS; } else { return ERROR; } }
index.jsp
<table>
<tr>
<td>书籍编号</td>
<td>书籍名称</td>
<td>书籍作者</td>
<td>书籍价位</td>
</tr>
<s:iterator value="#application.keyBooks" status="st">
<!-- 判断是否迭代的索引是否是奇数决定 CSS 样式 -->
<tr
<s:if test="#st.odd">
style="background-color:#BBFFFF"</s:if>
<s:else>style="background-color:#FFEBCD"</s:else>>
<!-- value 中使用 value.book* 表示提取 Map 中的 value 属性,然后在得到属性的属性 -->
<td><s:property value="value.bookNo" /></td>
<td><s:property value="value.bookName" /></td>
<td><s:property value="value.bookAuthor" /></td>
<td><s:property value="value.bookPrice" /></td>
</tr>
</s:iterator>
</table>
<tr>
<td>书籍编号</td>
<td>书籍名称</td>
<td>书籍作者</td>
<td>书籍价位</td>
</tr>
<s:iterator value="#application.keyBooks" status="st">
<!-- 判断是否迭代的索引是否是奇数决定 CSS 样式 -->
<tr
<s:if test="#st.odd">
style="background-color:#BBFFFF"</s:if>
<s:else>style="background-color:#FFEBCD"</s:else>>
<!-- value 中使用 value.book* 表示提取 Map 中的 value 属性,然后在得到属性的属性 -->
<td><s:property value="value.bookNo" /></td>
<td><s:property value="value.bookName" /></td>
<td><s:property value="value.bookAuthor" /></td>
<td><s:property value="value.bookPrice" /></td>
</tr>
</s:iterator>
</table>
在 Jsp 页面中使用的标签中,value 属性中为 value.*** 因为是事先获取到 Map 中的 value 属性,即获取到了类型为 BOOK 类型的值,然后通过“ . ”运算,获取到对象相关的属性。