Pagination Liferay搜索容器分页

Pagination Liferay搜索容器分页,pagination,liferay,Pagination,Liferay,我在代码中使用了liferay ui:search容器 搜索结果将正确显示,直到我单击下一步。这个portlet正在被重新加载,这将把我带到portlet的第一页,破坏呈现的搜索结果 <% PortletURL urlPaginator=renderResponse.createActionURL(); urlPaginator.setParameter("param1", value1); urlPaginator.setParameter("param2",value2); %>

我在代码中使用了liferay ui:search容器

搜索结果将正确显示,直到我单击下一步。这个portlet正在被重新加载,这将把我带到portlet的第一页,破坏呈现的搜索结果

<%
PortletURL urlPaginator=renderResponse.createActionURL();
urlPaginator.setParameter("param1", value1);
urlPaginator.setParameter("param2",value2);
%>

<liferay-ui:search-container iteratorURL="<%=urlPaginator%>">

即使在重新加载portlet之后,我如何保留搜索结果?

liferay搜索容器会根据单击“下一步”和“上一步”时传递的参数工作

请注意“下一个”和“上一个”链接的URL

例如,URL将具有如下参数:

p\u p\u id=15&p\u p\u lifecycle=0&p\u p\u state=maximized&p\u p\u mode=view&doAsGroupId=10194&refererPlid=12110&u 15\u struts\u action=%2Fjournal%2Fview&u 15\u tabs1=templates&u 15\u delta=20&u 15\u关键字=&&u 15\u高级搜索=false&u 15\u和运算符=true&u 15\u描述=&u 15\u GroupID=10194&u 15\u名称和结构=false&u搜索=

Liferay搜索容器使用delta、cur参数导航到下一组结果


有关更多信息,请查看使用搜索容器的liferay Portlet以及它们如何构建URL。

如果iteratorURL属性的默认行为不符合您的需要,您可以为其指定一个值

在下面的示例中,当您在搜索结果表上单击“下一步”时,将使用param1和param2调用portlet的proccesAction()方法

您可以向该方法添加逻辑以保留搜索结果

<%
PortletURL urlPaginator=renderResponse.createActionURL();
urlPaginator.setParameter("param1", value1);
urlPaginator.setParameter("param2",value2);
%>

<liferay-ui:search-container iteratorURL="<%=urlPaginator%>">

单击“下一步”(或搜索容器中的任何其他分页器按钮)会导致portlet呈现。 如果搜索容器不在portlet的第一页(通常是view.jsp,在portlet.xml中设置),您将重定向到那里(呈现阶段的默认行为)

在Liferay 6.2中,您可以设置一个迭代器URL,并使用参数mvcPath指定当前jsp

<liferay-portlet:renderURL portletConfiguration="true" varImpl="iteratorURL">
  <liferay-portlet:param name="mvcPath" value="something.jsp"/>
</liferay-portlet:renderURL>
<liferay-ui:search-container iteratorURL="<%=iteratorURL %>">
  [...]
</liferay-ui:search-container>

[...]