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 AbstractPageControllerController 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_8
-
Fields inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
FORWARD_PREFIX, REDIRECT_PREFIX, ROOT
-
-
Constructor Summary
Constructors Constructor Description ProductPageController()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.List<java.util.Map<java.lang.String,ImageData>>getGalleryImages(ProductData productData)protected AbstractPageModelgetPageForProduct(java.lang.String productCode)protected TmaProductOfferFacadegetProductOfferFacade()protected ReviewValidatorgetReviewValidator()protected TmaPoServicegetTmaPoService()protected TmaPriceOrganizationServicegetTmaPriceOrganizationService()java.lang.StringhandleUnknownIdentifierException(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)java.lang.StringpostReview(java.lang.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.java.lang.StringproductDetail(java.lang.String productCode, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)View product details page.java.lang.StringreviewHtml(java.lang.String productCode, java.lang.String numberOfReviews, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request)Show review.protected voidsetUpReviewPage(org.springframework.ui.Model model, ProductModel productModel)java.lang.StringshowQuickView(java.lang.String productCode, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request)Quick view.java.lang.StringshowZoomImages(java.lang.String productCode, java.lang.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)java.lang.StringwriteReview(java.lang.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.java.lang.StringwriteReview(java.lang.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, urlEncode
-
Methods inherited from class de.hybris.platform.acceleratorstorefrontcommons.controllers.AbstractController
addRequestToModel, getBean
-
-
-
-
Method Detail
-
productDetail
@RequestMapping(value="/{productCode:.*}", method=GET) public java.lang.String productDetail(@PathVariable("productCode") java.lang.String productCode, org.springframework.ui.Model model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException, java.io.UnsupportedEncodingExceptionView 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 foundjava.io.UnsupportedEncodingException- thrown in case encoding is not supported
-
showZoomImages
@RequestMapping(value="/{productCode:.*}/zoomImages", method=GET) public java.lang.String showZoomImages(@PathVariable("productCode") java.lang.String productCode, @RequestParam(value="galleryPosition",required=false) java.lang.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 java.lang.String showQuickView(@PathVariable("productCode") java.lang.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 java.lang.String postReview(@PathVariable java.lang.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.CMSItemNotFoundExceptionPost 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 java.lang.String reviewHtml(@PathVariable("productCode") java.lang.String productCode, @PathVariable("numberOfReviews") java.lang.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 java.lang.String writeReview(@PathVariable java.lang.String productCode, org.springframework.ui.Model model) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundExceptionWrite 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 java.lang.String writeReview(@PathVariable java.lang.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.CMSItemNotFoundExceptionWrite 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 java.lang.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
protected void updatePageTitle(ProductModel productModel, org.springframework.ui.Model model)
-
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
protected void sortVariantOptionData(ProductData productData)
-
getGalleryImages
protected java.util.List<java.util.Map<java.lang.String,ImageData>> getGalleryImages(ProductData productData)
-
getReviewValidator
protected ReviewValidator getReviewValidator()
-
getPageForProduct
protected AbstractPageModel getPageForProduct(java.lang.String productCode) throws de.hybris.platform.cms2.exceptions.CMSItemNotFoundException
- Throws:
de.hybris.platform.cms2.exceptions.CMSItemNotFoundException
-
getProductOfferFacade
protected TmaProductOfferFacade getProductOfferFacade()
-
getTmaPoService
protected TmaPoService getTmaPoService()
-
getTmaPriceOrganizationService
protected TmaPriceOrganizationService getTmaPriceOrganizationService()
-
initBinder
@InitBinder public void initBinder(org.springframework.web.bind.WebDataBinder binder)
-
-