上QQ阅读APP看书,第一时间看更新
16.5 完成查看所有用户信息模块
16.5.1 整合Struts 2和Spring
整合Spring之前首先需要为Web应用添加Spring所需的jar文件,然后修改“web.xml”文件。添加一个Listener,使得Web应用启动时会自动查找WEB-INF目录下的“applicationContext.xml”配置文件,并根据该配置文件来创建Spring容器。同时安装Struts 2的Spring插件,代码如下所示。
<? xml version="1.0" encoding="UTF-8"? > <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <! --定义核心Filter FilterDispatcher --> <filter> <! -- 定义核心Filter的名称 --> <filter-name>struts2</filter-name> <! --定义核心Filter的实现类 --> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <! --核心Filter的名称 --> <filter-name>struts2</filter-name> <! --使用该核心Filter来接受所有Web请求 --> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> </web-app>
16.5.2 创建查看全部用户信息控制器
新建业务控制器ShowAllAction,该Action负责取得所有的用户信息,并将所有用户List储存在request范围中,代码如下所示。
package net.hncu.action; import java.util.List; import net.hncu.service.UserService; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class ShowAllAction extends ActionSupport { //业务逻辑组件 private UserService userService; //设置业务逻辑组件 public void setUserService(UserService userService) { this.userService = userService; } public String execute() throws Exception { //通过调用业务逻辑组件获得所有用户 List all = userService.queryAllUser(); //将所有用户List储存在request范围中 ServletActionContext.getRequest().setAttribute("all", all); return SUCCESS; } }
16.5.3 创建全部用户信息显示页
新建用户信息显示页,该页面中通过iterator标签遍历List中的全部用户,并将用户信息显示出来,代码如下所示。
<%@page contentType="text/html; charset=gb2312"%> <%@taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>用户列表</title> </head> <body> <center> <h2>用户列表</h2> <table border="1"> <tr> <td>用户ID</td> <td>用户名</td> <td>密码</td> <td>是否删除</td> <td>是否更新</td> </tr> <s:iterator value="#request.all" id="user"> <tr> <td><a href="showUser.action? id=<s:property value=' #user.id' />"> <s:property value="#user.id"/></a></td> <td><s:property value="#user.username"/></td> <td><s:property value="#user.password"/></td> <td><a href="delete.action? id=<s:property value=' #user.id' />">删除</a></td> <td><a href="update.jsp? id=<s:property value=' #user.id' />">更新</a></td> </tr> </s:iterator> </table> <a href="add.jsp">添加新用户</a> </center> </body> </html>
16.5.4 配置查看全部用户信息控制器
在Spring配置文件中配置业务控制器showAllAction,并为其注入业务逻辑组件,代码如下所示。
<! -- 创建showAllActon实例 --> <bean id="showAllAction" class="net.hncu.action.ShowAllAction" scope="prototype"> <property name="userService" ref="userService"></property> </bean>
在“struts.xml”文件中配置showAllAction,并定义处理结果与视图资源之间的关系,代码如下所示。
<action name="showAll" class="showAllAction">
<! -- 定义处理结果与视图资源之间的关系-->
<result name="success">/showAll.jsp</result>
</action>
16.5.5 测试查看所有用户信息
打开浏览器,运行showAll.action,页面将跳转到用户信息显示页,并显示出所有用户信息,如图图16.2所示。
图16.2 注册用户列表