2013-02-28 113 views
3

我在我的代码中使用了liferay-ui:search-container。Liferay搜索容器分页

搜索结果正在正确显示,直到我点击NEXT。 Portlet正在重新加载,并将我带到Portlet的第一页,摧毁了所呈现的搜索结果。

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

回答

1

Liferay搜索容器对单击“next”和“previous”时所通过的参数起作用。

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

对于例如,URL将具有类似参数:

p_p_id = 15 & p_p_lifecycle = 0 & p_p_state =最大化& p_p_mode =视图& doAsGroupId = 10194 & refererPlid = 12110 & _15_struts_action =%2Fjournal%2Fview & _15_tabs1 =模板& _15_delta = 20 & _15_keywords = & _15_advancedSearch =假& _15_andOperator =真& _15_description = & _15_groupIds = 10194 & _15_name = & _15_structureId = & _15_searchTemplateId = & _15_resetCur =假& CUR = 2

Liferay的搜索容器使用增量,CUR参数导航到下一组结果。

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

4

如果默认行为不符合您的需要,您可以为iteratorURL属性赋予一个值。

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

您可以为该方法添加逻辑来保留您的搜索结果。

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

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