【发布时间】:2017-02-23 16:58:37
【问题描述】:
如何在 ISML 级别创建没有 PGID 的链接?
以下代码非常适合避免在 url 中使用 session id,但仍然在 url 末尾添加 PGID。
#sessionlessurl(Action(TargetPipeline))#
【问题讨论】:
标签: intershop
如何在 ISML 级别创建没有 PGID 的链接?
以下代码非常适合避免在 url 中使用 session id,但仍然在 url 末尾添加 PGID。
#sessionlessurl(Action(TargetPipeline))#
【问题讨论】:
标签: intershop
我目前创建没有 sid 和 pgid 的 url 的解决方案是:
<%
String targetPipeline = getPipelineDictionary().get("targetPipeline");
URLPipelineAction action = new URLPipelineAction(targetPipeline);
action.setAppendPGID(false);
// Default Link
String myDefaultLink = TemplateURLComposition.getTemplateExecutionConfig().getURLComposer().createURL(false, null, null, null, action, null);
getPipelineDictionary().put("myDefaultLink", myDefaultLink);
%>
<isprint value="#myDefaultLink#">
随意添加一个使用更少 JSP 的更好的:) 缺少 URLParameters,但您也可以在 JSP 部分中轻松添加它们。
【讨论】:
我相信sessionlessurl 无法做到这一点,而且我还认为没有 ISML 函数可以做到这一点。但是有一个自定义标签用于生成规范链接,您也可以使用它。该标签称为issetcanonicallink。这是代码示例:
<issetcanonicallink
scope="request"
name="CanonicalLink"
action="ViewStandardCatalog-Browse"
parameters="#ParameterList(Parameter('CatalogID', CategoryBO:CatalogBO:Name), Parameter('CategoryName', CategoryBO:Name))#">
<link rel="canonical" href="<isprint encoding="off" value="#CanonicalLink#">" />
实现SetCanonicalLinkTag 位于core 墨盒中,并相应记录了参数。
【讨论】: