Přizpůsobení hybris řadiče urychlovač obchody vykupující v addon

hlasů
0

Já používám hybris 6.3 a chtěli následovat nejlepší praxe přizpůsobení regulátorů urychlovač obchody vykupující pomocí addon. To se provádí, aby se upgrade na novější výlohu mnohem jednodušší.

Například, urychlovač určuje řadič Minicart podobný

package com.custom.storefront.controllers.misc;

@Controller
public class MiniCartController extends AbstractController
{
    @RequestMapping(value = /cart/miniCart/{totalDisplay:.*}, method = RequestMethod.GET)
    public String getMiniCart(@PathVariable final String totalDisplay, final Model model)
    {
        //default functionality
    }
}

Podle mého addonu bych chtěl zmapovat že stejný vzor adresy URL do nového řadiče, které potlačí funkci.

package com.custom.storefrontaddon.controllers.misc;

@Controller
public class MyCustomMiniCartController extends AbstractController
{
    @RequestMapping(value = /cart/miniCart/{totalDisplay:.*}, method = RequestMethod.GET)
    public String getMiniCart(@PathVariable final String totalDisplay, final Model model)
    {
        //overriding functionality, different from the default accelerator storefront
    }
}

Tato otázka byla položena zde , a přijala rada byla takto:

  • V addon-webové spring.xml přepsat fazole řadiče jako
    <bean name=miniCartController class=com.custom.storefrontaddon.controllers.misc.MyCustomMiniCartController/>
  • V addon-webové spring.xml , přidat SimpleUrlHandlerMappingjako
    <bean class=org.springframework.web.servlet.handler.SimpleUrlHandlerMapping>
        <property name=mappings>
            <props>
                <prop key=/cart/miniCart/**>miniCartController</prop>
            </props>
        </property>
    </bean>
  • Regulátor addon bude nyní nazýván místo standardního akcelerátoru regulátor pro cílové adresy URL.

Moje otázka

Jak tento mechanismus práce, kdy dokumentace Spring výslovně uvádí, že

Existuje také několik věcí, které již není možné:
- Nejprve je nutné zvolit regulátor se SimpleUrlHandlerMappingOr BeanNameUrlHandlerMappinga pak zúžit metoda založená na @RequestMappinganotacích.

Jarní používá RequestMappingHandlerMappingve výchozím nastavení akcelerátoru výlohu a v doplňku představujeme SimpleUrlHandlerMapping. Chci pochopit, proč to funguje, když každý druhý diskusní příspěvek jsem četl říká, že nemůžete přepsat @RequestMappingURL v jiném řadiči, nebo budete mít výjimku vyvolána pro duplicitní URL.

Položena 27/11/2018 v 18:01
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

Ve své odpovědi, budu suppopse, že jste udělali překlep, a znamenalo MyCustomMiniCartController místo MiniCartController in:

<bean name="miniCartController" class="com.custom.storefrontaddon.controllers.misc.MyCustomMiniCartController"/>

Ta věc je, že SimpleUrlHandlerMappingnemá nic společného a jeho prohlášení za addon-web-spring.xmlnaprosto k ničemu.

Předefinování miniCartControllerfazole v addon dělá definici fazole přepsán třídou addon, takže mapování žádost, která je deklarována ve třídě addon je ten „použitý“ U RequestMappingHandlerMapping.

Odpovězeno 02/12/2018 v 11:25
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more