如何规范化 Hybris 中的 URL

How to normalize URLs in Hybris

当我在用户界面中搜索类别和产品时,我的 URL 看起来像

一样损坏
�,  // c//p/010 

如何去掉这些字符?
Hybris 中是否有开箱即用的解决方案?

Hybris 在类别、产品和内容页面 URL 中做了很多转义特殊字符。为此考虑 de.hybris.platform.commerceservices.url.impl.AbstractUrlResolver 和所有子类。

以下是最常见的:

  • DefaultCategoryModelUrlResolver
  • DefaultProductModelUrlResolver
  • DefaultContentPageUrlResolver

像这样使用它们:

...
@Resource(name = "productModelUrlResolver")
private UrlResolver<ProductModel> productModelUrlResolver;
...
ProductModel product = productService.getProductForCode("myProduct");
String url = productModelUrlResolver.resolve(product);

将以下内容添加到 core-spring.xml

<alias name="mysiteProductModelUrlResolver" alias="productModelUrlResolver"/>
<bean id="mysiteProductModelUrlResolver"
      class="de.hybris.platform.commerceservices.url.impl.DefaultProductModelUrlResolver">
    <property name="threadContextService" ref="threadContextService"/>
    <property name="commerceCategoryService" ref="commerceCategoryService"/>
    <property name="baseSiteService" ref="baseSiteService"/>
    <property name="defaultPattern" value="/product/{product-code}"/>
    <property name="productAndCategoryHelper" ref="productAndCategoryHelper"/>
</bean>

并将ProductPageController更改为@RequestMapping(value = "/**/product")