WEB开发网
开发学院软件开发Java Go-ForIt 记事:eXtreme DragonSlayers 专题报告,... 阅读

Go-ForIt 记事:eXtreme DragonSlayers 专题报告,第 8 部分: 陷入多级显示漩涡

 2009-11-06 00:00:00 来源:WEB开发网   
核心提示: servlet 将这个视图 bean 存储在 HttpServletRequest 对象中,我们把它存储在 HttpServletRequest 对象中,Go-ForIt 记事:eXtreme DragonSlayers 专题报告,第 8 部分: 陷入多级显示漩涡(6),是因为这个视图列表仅对这

servlet 将这个视图 bean 存储在 HttpServletRequest 对象中。我们把它存储在 HttpServletRequest 对象中,是因为这个视图列表仅对这个请求有用。下次显示列表时,差事的状态可能已经改变了,必须使用更新的差事列表将新的视图 bean 实例化。

servlet 将控制权转移给 JSP 以显示数据。

The pa_errands_edit JSP 从存储在 HttpServletRequest 对象中的 bean 取出 HTML,将其放入页面中。

此页面被返回给浏览器,PA 查看差事列表。 HttpServletRequest 对象和视图 bean HTML 被删除。 HttpSession 对象以及存储在这个对象中的用户和列表 bean 仍保留了下来以便下一次请求使用。

我们的实现使用客户端 bean(用户实现用 UserDataBean ,差事列表实现用 ErrandListBean )和一个视图 bean。

下一部分讨论 servlet 和 JSP 代码以及它们对 HttpSession 和 HttpServletRequest 的使用。

显示差事代码

下面是执行这项工作的 performTask 方法的 servlet 代码,这段样本代码后面有关于代码的讨论。


EditPAErrandsServlet、performTask 方法
public void performTask( 
   javax.servlet.http.HttpServletRequest req, 
   javax.servlet.http.HttpServletResponse res) { 
   UserDataBean user = new UserDataBean(); 
   PersonalAssistantDataBean pa = null; 
   ErrandListBean paErrandList = null; 
   HttpSession session = null; 
   GetPAErrandsCommandBean dataCommand = new GetPAErrandsCommandBean(); 
/* ******************* START OF BLOCK 1 ************/ 
   try { 
     /* 
      * Get the existing user info from the session. 
      * (false) indicates we expect the session to be there - if 
      * not, do not create a new sesssion. 
      */ 
     session = req.getSession(false); 
     if (session != null) { 
        user = (UserDataBean) session.getValue("user"); 
     } 
     /* 
      * No session, go to login 
      */ 
     if (user == null) { 
        getServletConfig() 
          .getServletContext() 
          .getRequestDispatcher("/index.jsp") 
          .forward(req, res); 
/* ******************* START OF BLOCK 2 ************/     } 
     /* 
      * Retrieve the data if the errandList in the session is 
      * null. Otherwise just use it. 
      */ 
    paErrandList = (ErrandListBean) session.getValue("paErrandList"); 
     if (paErrandList == null) { 
     /*  No ErrorListBean, so retrieve errands. 
     */ 
        try { 
          dataCommand.setPaId(user.getUserid()); 
          dataCommand.execute(); 
          paErrandList = dataCommand.getPaErrands(); 
        } catch (CommandException e2) { 
        /* 
        * All other command errors go to the error page 
        */ 
     req.setAttribute("errorMsg", new ErrorView(e2.getMessage())); 
          req.setAttribute("user", user); 
          getServletConfig() 
           .getServletContext() 
           .getRequestDispatcher("/pages/error.jsp") 
           .forward(req, res); 
          return; 
        } 
     } 
/* ******************* START OF BLOCK 3 ************/ 
     /* Forward to JSP to display editable form */ 
     if (paErrandList != null) { 
        // Convert the ErrandList into an HREF list for the JSP 
 req.setAttribute("ErrandListView", new 
GetErrandListHTMLView(paErrandList)); 
        // put the paErrandList to the session object 
        session.putValue("paErrandList", paErrandList); 
     } 
     /* Forward to the JSP */ 
     getServletConfig() 
        .getServletContext() 
        .getRequestDispatcher("pages/pa_errand_list_paonly.jsp") 
        .forward(req, res); 
   } catch (Throwable t) { 
     try { 
     req.setAttribute("errorMsg", new ErrorView(t.getMessage())); 
        req.setAttribute("user", user); 
        getServletConfig() 
          .getServletContext() 
          .getRequestDispatcher("/pages/error.jsp") 
          .forward(req, res); 
     } catch (Exception e) { 
        log(e.getMessage()); 
     } 
   } 
} 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Go ForIt 记事

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接