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 Product
s 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'sname
is appended to this value (which is initialized with thestoreName
setting from thesscSetting
database table). By default this variable is used in the <title> tag of the html header.htmlHeadKeywords
: This value is replaced with the category'skeywords
property. By default this variable is used in the <meta>/keywords tag of the html header.htmlHeadDescription
: This value is replaced with the category'sdescription
property. By default this variable is used in the <meta>/description tag of the html header.
- Author:
- David Tobey
- See Also:
-
Field Summary
Fields inherited from class org.apache.struts.action.Action
servlet
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
defineMetaTags
(Category category, javax.servlet.http.HttpServletRequest request) protected String
determinePageName
(Category category) 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) protected Category
initializeCategory
(BaseDynaForm baseForm) protected void
loadAttributeOnlySKUs
(BaseDynaForm baseForm, javax.servlet.http.HttpServletRequest request, ProductProcessor productProcessor) protected SearchList
loadProductsWithAdvancedSearch
(BaseDynaForm baseForm, Category category, String sortByParameter) protected void
saveObjectsInRequestScope
(Category category, SearchList searchList, javax.servlet.http.HttpServletRequest request, BaseDynaForm baseForm) protected boolean
shouldProductsBeLoadedFromDB
(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:
execute
in 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
-