2013-10-15 72 views
0

是否有一种简单的方法可以在WebSphere Commerce 7(Feature Pack 6)中的Java类内构建seo友好的URL。如何在Websphere Commerce 7中使用Java内部的WebSphere Commerce构建Seo Urls

在JSP文件中,您可以使用提供的标签,但是在Java方法中还可以使用简单的方法构建seo URL。

我在自己的帮助器类中重建标记方法,但这似乎有点超过顶部,可能包含很多错误。

IBM是否提供了我尚未找到的帮助程序类?

感谢

回答

1

要创建可以使用SEOURLMapper SEO的URL。 实施例:

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); 
0

实际上所有这些SEO URL由一个Java类只创建(内部)。你需要检查你的wc-server.xml你在哪里定义SEOConfiguration

必须有一个与配置关联的URLMapper类。默认情况下,它是SEOURLMapper。检查其方法constructSEOURLdeconstructSEOURL

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的产品URL。

我们必须传递urlLangId,如果我们需要使用多种语言的URL,或者它总是拿起EN urlkeyword。

仅供参考 - ProductURL是模式XML文件中的模式名称。

+0

尽管此代码片段可能会解决问题,包括* how *和* why的解释,这可以解决问题[真的有帮助](// meta.stackexchange.com/q/114762)以提高质量您的帖子。请记住,你正在为将来的读者回答这个问题,而不仅仅是现在问的人!请编辑您的答案以添加解释,并指出适用的限制和假设。 –

+0

因为这是IBM应该如何完成的。 –

相关问题