Class CategoryAction
- Direct Known Subclasses:
WelcomeAction
The execute method of this class populates a category's
information from the database and puts it in the request and session scopes
for use by the view layer. Given a
CategoryForm with its
code property populated, it creates and initializes an instance
of Category. It then
invokes
ProductProcessor.getCategoryFromCode(Category)
to load the category's information from the database.
In the default implementation, in addition to all of the category's regular
properties, its productListCollection is populated with just
those Products falling on the current page being displayed. The
paging parameter for the number of items to display comes from the
"categoryPageSize" setting in the sscSetting database table.
Which page to display is determined by the value of the firstRow
request parameter (which is held by the incoming CategoryForm
and copied to the Category object being populated).
This method puts the initialized Category object in the request
and session scopes as an attribute with the name "currentCategory". A
Map representing the category's custom settings and other
settings is also placed in the request and session scopes as an attribute
named "categorySettings".
The execute method next loads a Map of
attribute-only SKUs and places it in the request as an attribute named
"attributeSKUs" so they may be displayed on the product page. (Attribute-only
SKUs are SKUs which are not tied to any particular product but which may
still be relevant to the one of the category's products.)
Finally, three other request attributes are set from the category's data.
Each of these variables is initialized with default values in
BaseRequestProcessor.processPreprocess(HttpServletRequest, HttpServletResponse)
and altered here with category-specific data:
htmlHeadTitle: The category'snameis appended to this value (which is initialized with thestoreNamesetting from thesscSettingdatabase table). By default this variable is used in the <title> tag of the html header.htmlHeadKeywords: This value is replaced with the category'skeywordsproperty. By default this variable is used in the <meta>/keywords tag of the html header.htmlHeadDescription: This value is replaced with the category'sdescriptionproperty. By default this variable is used in the <meta>/description tag of the html header.
- Author:
- David Tobey
- See Also:
-
Field Summary
FieldsFields inherited from class org.apache.struts.action.Action
servlet -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddefineMetaTags(Category category, javax.servlet.http.HttpServletRequest request) protected StringdeterminePageName(Category category) org.apache.struts.action.ActionForwardexecute(org.apache.struts.action.ActionMapping mapping, org.apache.struts.action.ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) protected CategoryinitializeCategory(BaseDynaForm baseForm) protected voidloadAttributeOnlySKUs(BaseDynaForm baseForm, javax.servlet.http.HttpServletRequest request, ProductProcessor productProcessor) protected SearchListloadProductsWithAdvancedSearch(BaseDynaForm baseForm, Category category, String sortByParameter) protected voidsaveObjectsInRequestScope(Category category, SearchList searchList, javax.servlet.http.HttpServletRequest request, BaseDynaForm baseForm) protected booleanshouldProductsBeLoadedFromDB(BaseDynaForm baseForm) Methods inherited from class org.apache.struts.action.Action
addErrors, addMessages, execute, generateToken, getErrors, getLocale, getMessages, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, resetToken, saveErrors, saveErrors, saveMessages, saveMessages, saveToken, setLocale, setServlet
-
Field Details
-
log
static org.apache.commons.logging.Log log
-
-
Constructor Details
-
CategoryAction
public CategoryAction()
-
-
Method Details
-
execute
public org.apache.struts.action.ActionForward execute(org.apache.struts.action.ActionMapping mapping, org.apache.struts.action.ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws Exception - Overrides:
executein classorg.apache.struts.action.Action- Throws:
Exception
-
initializeCategory
- Throws:
Exception
-
shouldProductsBeLoadedFromDB
-
loadProductsWithAdvancedSearch
protected SearchList loadProductsWithAdvancedSearch(BaseDynaForm baseForm, Category category, String sortByParameter) throws Exception - Throws:
Exception
-
loadAttributeOnlySKUs
protected void loadAttributeOnlySKUs(BaseDynaForm baseForm, javax.servlet.http.HttpServletRequest request, ProductProcessor productProcessor) throws Exception - Throws:
Exception
-
saveObjectsInRequestScope
protected void saveObjectsInRequestScope(Category category, SearchList searchList, javax.servlet.http.HttpServletRequest request, BaseDynaForm baseForm) throws Exception - Throws:
Exception
-
defineMetaTags
-
determinePageName
-