如何在没有 PGID 的情况下创建 link

How to create link without PGID

如何在 ISML 级别创建没有 PGID 的 link?

以下代码非常适合避免 url 中的会话 ID,但仍会在 url.

的末尾添加 PGID
#sessionlessurl(Action(TargetPipeline))#

我当前创建不带 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 盒中,相应地记录了参数。