显示类别名称而不是类别代码

2020-09-14 15:57发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

你们中的任何人都可以帮助我如何在URL中显示类别名称而不是类别编号/代码吗? 我想在URL中显示类别的含义全名。

http://localhost:9001/Category/Servers/c/10031

如果看到10031是类别代码,则不需要显示这样的名称。

http://localhost:9001/Category/Servers/c/flat-bed

先谢谢了。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

你们中的任何人都可以帮助我如何在URL中显示类别名称而不是类别编号/代码吗? 我想在URL中显示类别的含义全名。

http://localhost:9001/Category/Servers/c/10031

如果看到10031是类别代码,则不需要显示这样的名称。

http://localhost:9001/Category/Servers/c/flat-bed

先谢谢了。

付费偷看设置
发送
5条回答
骆驼绵羊
1楼 · 2020-09-14 16:18.采纳回答

嗨,萨西

您需要自定义DefaultCategoryModelUrlResolver.java的 resolveInternal 方法。 此方法负责URL的生成。 请按如下所示修改代码段:

  @Override
      受保护的String resolveInternal(最终CategoryModel源)
      {
         //计算值
 
         //替换模式值
          字符串url = getPattern();
          如果(url.contains(" {baseSite-uid}"))
          {
              url = url.replace(" {baseSite-uid}",urlEncode(getBaseSiteUid()。toString()));
          }
          如果(url.contains(" {category-path}")))
          {
              最后的字符串categoryPath = buildPathString(getCategoryPath(source));
              url = url.replace(" {category-path}",categoryPath);
          }

             //开始修改
              如果(url.contains(" {category-code}")))
          {
              最后的字符串categoryName = urlEncode(source.getName())。replaceAll(" \\ +","-");
              url = url.replace(" {category-code}",** categoryName **);
          }
             //修改结束



          如果(url.contains(" {catalog-id}")))
          {
              url = url.replace(" {catalog-id}",urlEncode(source.getCatalogVersion()。getCatalog()。getId()));
          }
          如果(url.contains(" {catalogVersion}"))
          {
              url = url.replace(" {catalogVersion}",urlEncode(source.getCatalogVersion()。getVersion()));
          }
 
          返回网址
 
      }



  

请让我知道您仍然有任何问题。

N-Moskvin
2楼-- · 2020-09-14 16:21

嗨,Sasi

在您更改URL后,需要更改实现控制器逻辑的方式。 转到类别页面控制器并进行更改,以便根据名称而不是代码来查询类别。 查询数据库时,请不要忘记设置名称的语言环境。

SC_Yao
3楼-- · 2020-09-14 16:23

嗨,SasiReddy

通过以下方法在AbstractCategoryPageController中重写URL时,类别和超类别名称将附加到URL上

 受保护的字符串performSearchAndGetResultsPage

  

但是,如果您选择在此处更改逻辑并希望在/c/之后显示类别名称,则必须更改您的categoryPageController并在下面的方法中进行更改

  @RequestMapping(value =
      {CATEGORY_CODE_PATH_VARIABLE_PATTERN,"/img/**" + CATEGORY_CODE_PATH_VARIABLE_PATTERN},方法= RequestMethod.GET)
      public String category(@PathVariable(" categoryCode")final String categoryCode,//NOSONAR

  

将值从categoryCode更改为categoryName,并改为使用categoryName查询数据库。

注意:我个人不建议使用此方法。 最好在进行此类更改之前先咨询您的SEO团队

CPLASF-自律
4楼-- · 2020-09-14 16:34

感谢您的快速回复。

渐行渐远_HoldOn
5楼-- · 2020-09-14 16:26

感谢您的回复Vikrant。

一周热门 更多>