功能1:查看某一种类宠物
系统对宠物商店中宠物的组织:
|
宠物种类 |
具体种类品种 |
具体品种分类 |
例如: |
狗 |
拉布拉多 |
公 |
|
狗 |
丹麦犬 |
母 |
|
狗 |
藏獒 |
成年 |
|
狗 |
牧羊犬 |
幼年 |
当用户在主界面点击’Dogs’弹出所有Dogs类型的宠物即所有狗的品种。如图1和2。
图1
图2
功能所对应的代码:
---------------------------------------------------------------------------------------------------------------------
Main.jsp对应代码
---------------------------------------------------------------------------------------------------------------------
<br/> <html:link page="/shop/viewCategory.shtml?categoryId=DOGS"> <img src="../images/dogs_icon.gif"/></html:link> <br/
Category.jsp对应代码
---------------------------------------------------------------------------------------------------------------------
<table> <tr><th>Product ID</th> <th>Name</th></tr> <logic:iterate id="product" name="productList"> <tr> <td><html:link paramId="productId" paramName="product" paramProperty="productId" page="/shop/viewProduct.shtml"> <bean:write name="product" property="productId"/></html:link></td> <td><bean:write name="product" property="name"/></td> </tr> </logic:iterate> <tr><td colspan="2"> <logic:notEqual name="productList" property="firstPage" value="true"> <a class="Button" href="switchProductListPage.shtml?pageDirection=previous"><< Prev</a> </logic:notEqual> <logic:notEqual name="productList" property="lastPage" value="true"> <a class="Button" href="switchProductListPage.shtml?pageDirection=next">Next >></a> </logic:notEqual> </td></tr> </table>
Struts-config.xml对应代码
---------------------------------------------------------------------------------------------------------------------
<action path="/shop/viewCategory" type="org.apache.struts.beanaction.BeanAction" name="catalogBean" scope="session" validate="false"> <forward name="success" path="/catalog/Category.jsp"/> </action>
1. WEB层: 当用户在Main.jsp返回给客户端浏览器的界面时点击Dogs,浏览器发出请求,服务器接到请求信息后由Struts中的ActionServlet将请求参数封装到HttpServletRequest和CatalogBean传递给BeanAction。BeanAction调用CatalogBean中的viewCategory方法(类似控制反转的方式,将调用方法软编码到配制文件中,也称之为服务定位器模式)。
2. 业务层:在viewCategory方法中调用CatalogService中的业务方法。
3. 数据持久层:CatalogService中的业务方法调用CategoryDao相应方法,其封装了访问数据库的操作。CategoryDao实例的获得由DaoManager进行控制,DaoManager属于iBatis,以后专门讨论。当访问成功后CategoryBean的viewCategory方法返回
SUCCESS。Struts的ActionServlet根据配制文件重定向到Category.jsp,并且返回给客户端浏览器