是否有一种简单的方法可以在WebSphere Commerce 7(Feature Pack 6)中的Java类中构建seo友好URL。
在JSP文件中,您可以使用提供的标记,但也有一种在Java方法中构建seo URL的简单方法。
我在自己的帮助器类中重建标记方法,但这似乎有点过头,可能包含很多错误。
IBM是否提供了我尚未找到的辅助类?
由于
答案 0 :(得分:2)
要创建SEO网址,您可以使用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);
答案 1 :(得分:0)
实际上,所有这些SEO URL都是由JAVA类(内部)创建的。您需要检查wc-server.xml
您定义SEOConfiguration
的位置。
必须有一个与配置相关联的URLMapper类。默认情况下,它是SEOURLMapper
。检查其方法constructSEOURL
和deconstructSEOURL
。
答案 2 :(得分:0)
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的产品网址 - > languageId。
我们必须传递urlLangId,如果我们需要使用多种语言的URL,否则它总是会提取EN urlkeyword。
FYI - ProductURL是模式XML文件中的模式名称。