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