零基础学Struts
上QQ阅读APP看书,第一时间看更新

16.6 完成查看用户详细信息模块

16.6.1 创建查看用户详细信息控制器

新建业务控制器ShowUserAction,该Action负责取得指定ID的用户信息,将所得用户信息储存在request范围中,代码如下所示。

        package net.hncu.action;
        import net.hncu.po.User;
        import net.hncu.service.UserService;
        import org.apache.struts2.ServletActionContext;
        import com.opensymphony.xwork2.ActionSupport;
        public class ShowUserAction extends ActionSupport {
              private int id;
              //业务逻辑组件
              private UserService userService;
              //设置业务逻辑组件
              public void setUserService(UserService userService) {
                    this.userService = userService;
              }
              public int getId() {
                    return id;
              }
              public void setId(int id) {
                    this.id = id;
              }
              public String execute() throws Exception {
                    //通过调用业务逻辑组件获得该ID的用户
                    User user = userService.queryUserByID(id);
                    //将所得用户信息存储在request范围中
                    ServletActionContext.getRequest().setAttribute("user", user);
                    return SUCCESS;
              }
        }

16.6.2 创建查看用户详细信息显示页

新建用户详细信息显示页,该页面用来显示用户的详细信息,代码如下所示。

        <%@page contentType="text/html; charset=gb2312"%>
        <%@taglib prefix="s" uri="/struts-tags"%>
        <html>
        <head>
              <title>用户详细信息</title>
        </head>
        <body>
        <center>
          <h2>用户详细信息</h2>
          <table border="1">
                <s:set name="user" value="#request.user"/>
                <tr>
                      <td>用户ID</td>
                      <td><s:property value="#user.id"/></td>
                </tr>
                <tr>
                      <td>用户名</td>
                      <td><s:property value="#user.username"/></td>
                </tr>
                <tr>
                      <td>密码</td>
                      <td><s:property value="#user.password"/></td>
                </tr>
                <tr>
                      <td>年龄</td>
                      <td><s:property value="#user.age"/></td>
                </tr>
                <tr>
                      <td>出生日期</td>
                      <td><s:property value="#user.birth"/></td>
                </tr>
                <tr>
                      <td>电子邮箱地址</td>
                      <td><s:property value="#user.email"/></td>
                </tr>
          </table>
          <a href="showAll.action">返回用户列表</a>
    </center>
    </body>
    </html>

16.6.3 配置用户详细信息控制器

在Spring配置文件中配置业务控制器showUserAction,并为其注入业务逻辑组件,代码如下所示。

    <! -- 创建showUserAction实例 -->
    <bean id="showUserAction" class="net.hncu.action.ShowUserAction" scope="prototype">
        <property name="userService" ref="userService"></property>
    </bean>

在struts.xml文件中配置showUserAction,并定义处理结果与视图资源之间的关系,代码如下所示。

    <action name="showUser" class="showUserAction">
          <! -- 定义处理结果与视图资源之间的关系-->
          <result name="success">/showUser.jsp</result>
    </action>

16.6.4 测试查看用户详细信息

在用户列表中单击用户ID上的链接,页面将跳转到用户详细信息显示页,显示出用户的详细信息,如图16.3所示。

图16.3 查看用户详细信息

16.7.1 创建用户添加页