Class ProductHandlerMapping

java.lang.Object
org.springframework.context.support.ApplicationObjectSupport
org.springframework.web.context.support.WebApplicationObjectSupport
org.springframework.web.servlet.handler.AbstractHandlerMapping
org.broadleafcommerce.common.web.BLCAbstractHandlerMapping
org.broadleafcommerce.core.web.catalog.ProductHandlerMapping
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanNameAware, org.springframework.context.ApplicationContextAware, org.springframework.core.Ordered, org.springframework.web.context.ServletContextAware, org.springframework.web.servlet.HandlerMapping

public class ProductHandlerMapping extends org.broadleafcommerce.common.web.BLCAbstractHandlerMapping
This handler mapping works with the Product entity to determine if a product has been configured for the passed in URL.

If the URL matches a valid Product then this mapping returns the handler configured via the controllerName property or blProductController by default.

Since:
2.0
Author:
bpolster
See Also:
  • Product
  • CatalogService
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected org.broadleafcommerce.core.catalog.service.CatalogService
     
     
    static final String
     
    protected String
     

    Fields inherited from class org.broadleafcommerce.common.web.BLCAbstractHandlerMapping

    env

    Fields inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping

    mappingsLogger

    Fields inherited from class org.springframework.context.support.ApplicationObjectSupport

    logger

    Fields inherited from interface org.springframework.web.servlet.HandlerMapping

    BEST_MATCHING_HANDLER_ATTRIBUTE, BEST_MATCHING_PATTERN_ATTRIBUTE, INTROSPECT_TYPE_LEVEL_MAPPING, LOOKUP_PATH, MATRIX_VARIABLES_ATTRIBUTE, PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE, PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE, URI_TEMPLATE_VARIABLES_ATTRIBUTE

    Fields inherited from interface org.springframework.core.Ordered

    HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected org.broadleafcommerce.core.catalog.domain.Product
    findProductUsingIdParam(jakarta.servlet.http.HttpServletRequest request)
     
    protected org.broadleafcommerce.core.catalog.domain.Product
    findProductUsingUrl(jakarta.servlet.http.HttpServletRequest request)
     
     
    protected Object
    getHandlerInternal(jakarta.servlet.http.HttpServletRequest request)
     
    void
    setDefaultTemplateName(String defaultTemplateName)
     
    boolean
    shouldSkipExecution(jakarta.servlet.http.HttpServletRequest request)
     

    Methods inherited from class org.broadleafcommerce.common.web.BLCAbstractHandlerMapping

    allowCategoryResolutionUsingIdParam, allowProductResolutionUsingIdParam, getControllerName, getDefaultHandler, setControllerName

    Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerMapping

    adaptInterceptor, detectMappedInterceptors, extendInterceptors, formatMappingName, getAdaptedInterceptors, getCorsConfiguration, getCorsConfigurationSource, getCorsHandlerExecutionChain, getCorsProcessor, getHandler, getHandlerExecutionChain, getMappedInterceptors, getOrder, getPathMatcher, getPatternParser, getUrlPathHelper, hasCorsConfigurationSource, initApplicationContext, initInterceptors, initLookupPath, setAlwaysUseFullPath, setBeanName, setCorsConfigurations, setCorsConfigurationSource, setCorsProcessor, setDefaultHandler, setInterceptors, setOrder, setPathMatcher, setPatternParser, setRemoveSemicolonContent, setUrlDecode, setUrlPathHelper, usesPathPatterns

    Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport

    getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext

    Methods inherited from class org.springframework.context.support.ApplicationObjectSupport

    getApplicationContext, getMessageSourceAccessor, obtainApplicationContext, requiredContextClass, setApplicationContext

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • CURRENT_PRODUCT_ATTRIBUTE_NAME

      public static final String CURRENT_PRODUCT_ATTRIBUTE_NAME
      See Also:
    • charEncoding

      @Value("${request.uri.encoding}") public String charEncoding
    • defaultTemplateName

      protected String defaultTemplateName
    • catalogService

      protected org.broadleafcommerce.core.catalog.service.CatalogService catalogService
  • Constructor Details

    • ProductHandlerMapping

      public ProductHandlerMapping()
  • Method Details

    • getHandlerInternal

      protected Object getHandlerInternal(jakarta.servlet.http.HttpServletRequest request) throws Exception
      Specified by:
      getHandlerInternal in class org.springframework.web.servlet.handler.AbstractHandlerMapping
      Throws:
      Exception
    • shouldSkipExecution

      public boolean shouldSkipExecution(jakarta.servlet.http.HttpServletRequest request) throws org.springframework.web.bind.ServletRequestBindingException
      Throws:
      org.springframework.web.bind.ServletRequestBindingException
    • findProductUsingIdParam

      protected org.broadleafcommerce.core.catalog.domain.Product findProductUsingIdParam(jakarta.servlet.http.HttpServletRequest request) throws org.springframework.web.bind.ServletRequestBindingException
      Throws:
      org.springframework.web.bind.ServletRequestBindingException
    • findProductUsingUrl

      protected org.broadleafcommerce.core.catalog.domain.Product findProductUsingUrl(jakarta.servlet.http.HttpServletRequest request) throws UnsupportedEncodingException
      Throws:
      UnsupportedEncodingException
    • getDefaultTemplateName

      public String getDefaultTemplateName()
    • setDefaultTemplateName

      public void setDefaultTemplateName(String defaultTemplateName)