【问题标题】:How to build Seo Urls in WebSphere Commerce inside Java in Websphere Commerce 7如何在 Websphere Commerce 7 中的 Java 中在 WebSphere Commerce 中构建 Seo Urls
【发布时间】:2013-10-15 12:04:45
【问题描述】:
是否有一种简单的方法可以在 WebSphere Commerce 7(功能包 6)的 Java 类中构建对 seo 友好的 url。
在 JSP 文件中,您可以使用提供的标记,但是还有一种简单的方法可以在 Java 方法中构建 seo url。
我在自己的帮助类中重新构建了标记方法,但这似乎有点过头了,并且可能包含很多错误。
IBM 是否提供我还没有找到的帮助程序类?
谢谢
【问题讨论】:
标签:
websphere
websphere-commerce
【解决方案1】:
要创建 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);
【解决方案2】:
实际上所有这些 SEO URL 都是由 JAVA 类(内部)创建的。您需要检查您定义SEOConfiguration 的wc-server.xml。
必须有一个与配置关联的 URLMapper 类。默认为SEOURLMapper。检查其方法constructSEOURL 和deconstructSEOURL。
【解决方案3】:
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。
如果我们需要有多种语言的 URL,我们必须传递 urlLangId,否则它总是会选择 EN urlkeyword。
仅供参考 - ProductURL 是模式 XML 文件中的模式名称。
【讨论】:
-
虽然这段代码 sn-p 可以解决问题,包括说明 如何 和 为什么 这解决了问题 would really help 以改进你的帖子质量。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。