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