Class ProductPageController
java.lang.Object
de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
de.hybris.platform.acceleratorstorefrontcommons.controllers.pages.AbstractPageController
de.hybris.platform.b2ctelcoaddon.controllers.pages.ProductPageController
@Controller
@Scope("tenant")
@RequestMapping("/**/p")
public class ProductPageController
extends AbstractPageController
Controller for product details page.
-
Nested Class Summary
Nested classes/interfaces inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
AbstractController.HttpNotFoundException -
Field Summary
Fields inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.pages.AbstractPageController
CMS_PAGE_MODEL, CMS_PAGE_TITLE, PAGE_ROOT, REDIRECT_TO_LOGIN_FOR_CHECKOUT, REDIRECT_TO_MULTISTEP_CHECKOUT, REGISTRATION_CONSENT_ID, UTF_8Fields inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
FORWARD_PREFIX, REDIRECT_PREFIX, ROOT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetGalleryImages(ProductData productData) protected AbstractPageModelgetPageForProduct(String productCode) protected TmaProductOfferFacadeprotected ReviewValidatorprotected TmaPoServiceprotected TmaPriceOrganizationServicehandleUnknownIdentifierException(de.hybris.platform.servicelayer.exceptions.UnknownIdentifierException exception, javax.servlet.http.HttpServletRequest request) Unknown identifier error.voidinitBinder(org.springframework.web.bind.WebDataBinder binder) protected voidpopulateProductData(ProductData productData, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) protected voidpopulateProductDetailForDisplay(TmaProductOfferingModel productModel, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) postReview(String productCode, ReviewForm form, org.springframework.validation.BindingResult result, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttrs) Post review.productDetail(String productCode, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) View product details page.reviewHtml(String productCode, String numberOfReviews, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) Show review.protected voidsetUpReviewPage(org.springframework.ui.Model model, ProductModel productModel) showQuickView(String productCode, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) Quick view.showZoomImages(String productCode, String galleryPosition, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) Zoom images.protected voidsortVariantOptionData(ProductData productData) protected voidupdatePageTitle(ProductModel productModel, org.springframework.ui.Model model) writeReview(String productCode, ReviewForm form, org.springframework.validation.BindingResult result, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttrs) Write review.writeReview(String productCode, org.springframework.ui.Model model) Write review dialog.Methods inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.pages.AbstractPageController
addRegistrationConsentDataToModel, checkRequestUrl, createMetaElement, decodeWithScheme, getBaseSiteService, getCheckoutRedirectUrl, getCmsPageService, getCmsPreviewService, getCmsSiteService, getConfigurationService, getConsentFacade, getContentPageForLabelOrId, getCurrencies, getCurrentCurrency, getCurrentLanguage, getCustomerFacade, getHostConfigService, getI18nService, getLanguages, getMessageSource, getPageTitleResolver, getRequestContextData, getSessionService, getSiteConfigService, getSiteName, getSiteUid, getStoreSessionFacade, getUser, getUserFacade, getViewForPage, getViewForPage, prepareNotFoundPage, setUpMetaData, setUpMetaDataForContentPage, storeCmsPageInModel, storeContentPageTitleInModel, storeContinueUrl, urlEncodeMethods inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
addRequestToModel, getBean
-
Constructor Details
-
ProductPageController
public ProductPageController()
-
-
Method Details
-
productDetail
@RequestMapping(value="/{productCode:.*}", method=GET) public String productDetail(@PathVariable("productCode") String productCode, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException, UnsupportedEncodingException View product details page.- Parameters:
productCode- product codemodel- page modelrequest- http requestresponse- http response- Returns:
- path to PDP page
- Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException- thrown in case the product with ID specified is not foundUnsupportedEncodingException- thrown in case encoding is not supported
-
showZoomImages
@RequestMapping(value="/{productCode:.*}/zoomImages", method=GET) public String showZoomImages(@PathVariable("productCode") String productCode, @RequestParam(value="galleryPosition",required=false) String galleryPosition, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) Zoom images.- Parameters:
productCode- product codegalleryPosition- position of the gallerymodel- page model- Returns:
- path to zoom images fragment
-
showQuickView
@RequestMapping(value="/{productCode:.*}/quickView", method=GET) public String showQuickView(@PathVariable("productCode") String productCode, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) Quick view.- Parameters:
productCode- product codemodel- page modelrequest- http request- Returns:
- path to quick view fragment
-
postReview
@RequestMapping(value="/{productCode:.*}/review", method={GET,POST}) public String postReview(@PathVariable String productCode, ReviewForm form, org.springframework.validation.BindingResult result, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttrs) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException Post review.- Parameters:
productCode- the product codeform- review formresult- binding resultmodel- page modelrequest- htto requestredirectAttrs- redirect attributes- Returns:
- returns the path to PDP page
- Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException- in case setup of review page fails the error is thrown
-
reviewHtml
@RequestMapping(value="/{productCode:.*}/reviewhtml/{numberOfReviews:.*}", method=GET) public String reviewHtml(@PathVariable("productCode") String productCode, @PathVariable("numberOfReviews") String numberOfReviews, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) Show review.- Parameters:
productCode- the product codenumberOfReviews- number of reviewsmodel- page modelrequest- http request- Returns:
- the path to reviews page tab
-
writeReview
@RequestMapping(value="/{productCode:.*}/writeReview", method=GET) public String writeReview(@PathVariable String productCode, org.springframework.ui.Model model) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException Write review dialog.- Parameters:
productCode- product codemodel- page model- Returns:
- path to review page
- Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException- in case setup of review page fails the error is thrown
-
setUpReviewPage
protected void setUpReviewPage(org.springframework.ui.Model model, ProductModel productModel) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException - Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException
-
writeReview
@RequestMapping(value="/{productCode:.*}/writeReview", method=POST) public String writeReview(@PathVariable String productCode, ReviewForm form, org.springframework.validation.BindingResult result, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, org.springframework.web.servlet.mvc.support.RedirectAttributes redirectAttrs) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException Write review.- Parameters:
productCode- the product codeform- input form objectresult- binding resultmodel- page modelrequest- request objectredirectAttrs- redirect attributes- Returns:
- returns path to PDP page with review message on the model
- Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException- in case
-
handleUnknownIdentifierException
@ExceptionHandler(de.hybris.platform.servicelayer.exceptions.UnknownIdentifierException.class) public String handleUnknownIdentifierException(de.hybris.platform.servicelayer.exceptions.UnknownIdentifierException exception, javax.servlet.http.HttpServletRequest request) Unknown identifier error.- Parameters:
exception- exception o bjectrequest- http request- Returns:
- forward patch to a 404 error page
-
updatePageTitle
-
populateProductDetailForDisplay
protected void populateProductDetailForDisplay(TmaProductOfferingModel productModel, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException - Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException
-
populateProductData
protected void populateProductData(ProductData productData, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request) -
sortVariantOptionData
-
getGalleryImages
-
getReviewValidator
-
getPageForProduct
protected AbstractPageModel getPageForProduct(String productCode) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException - Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException
-
getProductOfferFacade
-
getTmaPoService
-
getTmaPriceOrganizationService
-
initBinder
@InitBinder public void initBinder(org.springframework.web.bind.WebDataBinder binder)
-