如何在叠加层中显示搜索结果页面

时间:2013-05-13 13:57:27

标签: java javascript cq5

我需要在叠加层中显示搜索结果页面。 为此,我创建了一个div:

  <div class="overlaybox" id="overlaybox" style="display:none">
      <sling:include path="/content/myapp/searchpage.html" />     
  </div>

我可以使用上面的代码在overlay中显示搜索页面(不向路径添加任何查询字符串)。然而, 现在,当我点击搜索时,我需要将搜索中输入的查询作为请求参数附加到此searchpage.html,然后只会在搜索页面中填充搜索结果。目前,在上面的代码中,没有传递请求参数,因此它没有显示任何结果。 所以我尝试使用以下代码:

    String keyword="games"
    String path="/content/myapp/searchpage.html?q="+keyword; 

并在吊索中使用该路径:包含如下

    <div class="overlaybox" id="overlaybox" style="display:none">
        <sling:include path="<%=path%>" />     
    </div>

然而,这不起作用。谁能告诉我如何将查询字符串添加到路径?

1 个答案:

答案 0 :(得分:1)

当您吊索:包含搜索页面时,您的页面组件渲染脚本(可能是searchpage.jsp)将被执行。因此,您应该能够使用标准代码从该脚本读取查询参数,即:

String keyword = slingRequest.getParameter("q");

如果您传递的参数实际上不在URL查询字符串中,但需要进行硬编码,那么您可以使用选择器:

<sling:include path="/content/myapp/searchpage.html" addSelectors="games">
...
String keyword = slingRequest.getRequestPathInfo().getSelectorsString();