节点链接不起作用

时间:2017-08-21 17:18:43

标签: java search freemarker jcr magnolia

我想将搜索结果从searchfn链接到页面,而不仅仅是组件。 目前我有:

[#if queryStr?has_content]
    [#assign searchResults = mySearchfn.searchContent('website', queryStr, '/home', 'mgnl:component') /]
[#assign recordsFound = searchResults?size /]

        <h3>  <em>${recordsFound}</em> Results -> "${queryStr}"</span></h3>

    <div class="list-group">
    [#if searchResults?has_content]
        [#list searchResults as item]
        <a href="${cmsfn.link(item)}" class="list-group-item">
            <p class="list-group-item-text">${item.excerpt!}</p>
            </a>


        <p class="list-group-item-text">${item.page!}</p>
        <!--return:getPath() of the node (pointing to component) as String-->
        <p class="list-group-item-text">${item.pageLink!}</p>
        <!--return:path/to/page as String-->

        [/#list]
    [/#if]
        </div>

[/#if]

我从标签获取的网址类似于&#34;路径/到/页面/区域/组件&#34;,问题是我看不到整页,只看到组件。

<a href="${cmsfn.contentByPath(item.pageLink, "website")}">link</a>

给出上面的示例,只构建url为/ page不使用完整字符串构建(path / to / page)

2 个答案:

答案 0 :(得分:0)

要么

  • 使用searchPages(String query, String startPath)代替或
  • 将代码中的最后一个参数更改为mgnl:page而不是mgnl:component(因为最后一个参数是返回类型而不是搜索类型)。

答案 1 :(得分:0)

你可以尝试一下:

$ {cmsfn.link(cmsfn.page(项目))}

或:

$ {cmsfn.link(cmsfn.contentByPath(item.pageLink))}