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.beans.support.PagedListHolder;
import org.springframework.util.StringUtils;
public class SearchProductsAction extends BaseAction {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String keyword = request.getParameter("keyword");
if (keyword != null) {
if (!StringUtils.hasLength(keyword)) {
request.setAttribute("message", "Please enter a keyword to search for, then press the search button.");
return mapping.findForward("failure");
}
PagedListHolder productList = new PagedListHolder(getPetStore().searchProductList(keyword.toLowerCase()));
productList.setPageSize(4);
request.getSession().setAttribute("SearchProductsAction_productList", productList);
request.setAttribute("productList", productList);
return mapping.findForward("success");
}
else {
String page = request.getParameter("page");
PagedListHolder productList = (PagedListHolder) request.getSession().getAttribute("SearchProductsAction_productList");
if (productList == null) {
request.setAttribute("message", "Your session has timed out. Please start over again.");
return mapping.findForward("failure");
}
if ("next".equals(page)) {
productList.nextPage();
}
else if ("previous".equals(page)) {
productList.previousPage();
}
request.setAttribute("productList", productList);
return mapping.findForward("success");
}
}
}