package org.springframework.samples.jpetstore.web.struts;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.samples.jpetstore.domain.Account;
import org.springframework.util.PagedListHolder;
public class EditAccountAction extends SecureBaseAction {
protected ActionForward doExecute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
AccountActionForm acctForm = (AccountActionForm) form;
if (AccountActionForm.VALIDATE_EDIT_ACCOUNT.equals(acctForm.getValidate())) {
acctForm.getAccount().setListOption(request.getParameter("account.listOption") != null);
acctForm.getAccount().setBannerOption(request.getParameter("account.bannerOption") != null);
Account account = acctForm.getAccount();
getPetStore().updateAccount(account);
acctForm.setAccount(getPetStore().getAccount(account.getUsername()));
PagedListHolder myList = new PagedListHolder(getPetStore().getProductListByCategory(account.getFavouriteCategoryId()));
myList.setPageSize(4);
acctForm.setMyList(myList);
request.getSession().setAttribute("accountForm", acctForm);
request.getSession().removeAttribute("workingAccountForm");
return mapping.findForward("success");
}
else {
request.setAttribute("message", "Your account was not updated because the submitted information was not validated.");
return mapping.findForward("failure");
}
}
}
|