我需要在叠加层中显示搜索结果页面。 为此,我创建了一个 div:
<div class="overlaybox" id="overlaybox" style="display:none">
<sling:include path="/content/myapp/searchpage.html" />
</div>
我可以使用上面的代码以叠加方式显示搜索页面(无需在路径中附加任何查询字符串)。然而, 现在,当我点击搜索时,我需要将搜索中输入的查询作为请求参数附加到此 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>
但是,这并没有奏效。谁能告诉我如何将查询字符串添加到路径中?
最佳答案
当您 sling:include searchpage 时,您的页面组件渲染脚本(大概是 searchpage.jsp)将被执行。因此,您应该能够使用标准代码从该脚本读取查询参数,即:
String keyword = slingRequest.getParameter("q");
如果您传递的参数实际上不在 URL 查询字符串中,但需要进行硬编码,也许您可以使用选择器:
<sling:include path="/content/myapp/searchpage.html" addSelectors="games">
...
String keyword = slingRequest.getRequestPathInfo().getSelectorsString();
关于java - 如何在叠加层中显示搜索结果页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16523891/