DeleteFromListAction.java
01 /**
02  *
03  * All content copyright (c) 2003-2008 Terracotta, Inc.,
04  * except as may otherwise be noted in a separate copyright notice.
05  * All rights reserved.
06  *
07  */
08 package demo.tasklist.action;
09 
10 import demo.tasklist.common.Constants;
11 import demo.tasklist.form.DeleteFromListForm;
12 import demo.tasklist.service.DataKeeper;
13 import demo.tasklist.service.ErrorKeeper;
14 import javax.servlet.http.HttpServletRequest;
15 import javax.servlet.http.HttpServletResponse;
16 import javax.servlet.http.HttpSession;
17 import org.apache.struts.action.Action;
18 import org.apache.struts.action.ActionForm;
19 import org.apache.struts.action.ActionForward;
20 import org.apache.struts.action.ActionMapping;
21 
22 /**
23  *  DeleteFromListAction processes the request to delete one or more items
24  *  from the task list. Task list is fetched from the HttpSession object,
25  *  items indicated in the DeleteFromListForm are deleted from the list, and
26  *  the modified list is loaded back into the HttpSession object.
27  *
28  *@author    Terracotta, Inc.
29  */
30 public class DeleteFromListAction extends Action {
31    public ActionForward execute(ActionMapping mapping,
32          ActionForm form,
33          HttpServletRequest request,
34          HttpServletResponse response)
35           throws Exception {
36 
37       HttpSession session = (HttpSessionrequest.getSession();
38 
39       DeleteFromListForm deleteFromListForm = (DeleteFromListFormform;
40       String[] itemsForDelete = deleteFromListForm.getItemsForDelete();
41       String errorMsg = deleteFromListForm.getErrorMsg();
42 
43       if (errorMsg != null) {
44          session.setAttribute(Constants.ERROR_KEY, new ErrorKeeper(errorMsg));
45       }
46       else {
47          session.removeAttribute(Constants.ERROR_KEY);
48       }
49 
50       DataKeeper dkeeper = (DataKeepersession.getAttribute(Constants.DATA_KEY);
51       if (dkeeper == null) {
52          dkeeper = new DataKeeper();
53       }
54       dkeeper.deleteListItems(itemsForDelete);
55 
56       session.setAttribute(Constants.DATA_KEY, dkeeper);
57 
58       return mapping.findForward(Constants.SUCCESS_KEY);
59    }
60 }