有没有一种简单的方法可以在 WebSphere Commerce 7(功能包 6)中的 Java 类中构建对 seo 友好的 url。
在 JSP 文件中,您可以使用提供的标记,但还有一种简单的方法可以在 Java 方法中构建 seo url。
我在自己的帮助器类中重建标记方法,但这似乎有点过头了,可能包含很多错误。
IBM 是否提供我还没有找到的帮助程序类?
谢谢
有没有一种简单的方法可以在 WebSphere Commerce 7(功能包 6)中的 Java 类中构建对 seo 友好的 url。
在 JSP 文件中,您可以使用提供的标记,但还有一种简单的方法可以在 Java 方法中构建 seo url。
我在自己的帮助器类中重建标记方法,但这似乎有点过头了,可能包含很多错误。
IBM 是否提供我还没有找到的帮助程序类?
谢谢
要创建 SEO URL,您可以使用 SEOURLMapper。例子:
String patternName = "CanonicalItemURL";
TypedProperty properties = new TypedProperty();
properties.put("storeId", storeId);
properties.put("langId", languageId);
properties.put("catalogId", catalogId);
SEOURLMapper mapperInstance = SEOConfigurationRegistry.singleton().getMapperInstance();
String seoUrl = mapperInstance.constructDynamicURLByPatternName(patternName, properties, null);
Actually all these SEO URLs are created by a JAVA class only (internally). You need to check your wc-server.xml
where you define the SEOConfiguration
.
There must be a URLMapper class associated with the configuration. By default it's SEOURLMapper
. Check its methods constructSEOURL
and deconstructSEOURL
.
TypedProperty urlProperties = new TypedProperty();
urlProperties.put("storeId", storeId);
urlProperties.put("catalogId", catalogId);
urlProperties.put("langId", languageId);
urlProperties.put("urlLangId", languageId);
urlProperties.put("productId", productId);
SEOURLMapper mapper = SEOConfigurationRegistry.singleton().getMapperInstance();
url = mapper.constructSEOURLByPatternName("ProductURL", urlProperties, null, null, null);
上面的代码将帮助您生成语言 ID -> 语言 ID 的产品 URL。
我们必须传递 urlLangId,如果我们需要有多种语言的 URL,否则它总是会选择 EN urlkeyword。
仅供参考 - ProductURL 是模式 XML 文件中的模式名称。