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 = (HttpSession) request.getSession();
38
39 DeleteFromListForm deleteFromListForm = (DeleteFromListForm) form;
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 = (DataKeeper) session.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 }
|