4

コードで liferay-ui:search-container を使用しました。

[次へ] をクリックするまで、検索結果は適切に表示されています。ポートレットが再ロードされ、ポートレットの最初のページが表示され、提示された検索結果が破棄されます。

ポートレットがリロードされた後でも検索結果を保持するにはどうすればよいですか?

4

3 に答える 3

4

デフォルトの動作がニーズに合わない場合は、 iteratorURL 属性に値を指定できます。

次の例では、検索結果テーブルで [次へ] をクリックすると、ポートレットの proccesAction() メソッドが param1 と param2 で呼び出されます。

そのメソッドにロジックを追加して、検索結果を保持できます。

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

<liferay-ui:search-container iteratorURL="<%=urlPaginator%>">
于 2013-03-05T16:46:40.913 に答える
1

liferay 検索コンテナーは、[次へ] および [前へ] をクリックしたときに渡されるパラメーターで機能します。

「次へ」「前へ」リンクの URL を確認してください。

たとえば、URL には次のようなパラメータがあります。

p_p_id=15&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&doAsGroupId=10194&refererPlid=12110&_15_struts_action=%2Fjournal%2Fview&_15_tabs1=templates&_15_delta=20&_15_keywords=&_15_advancedSearch=false&_15_andOperator=true&_15_description=&_15_groupIds=10194&_15_name=&_15_structureId=&_15_searchTemplateId=&_15_resetCur=false&cur=2

Liferay 検索コンテナーは、delta、cur パラメーターを使用して、次の結果セットに移動します。

詳細については、検索コンテナを使用する liferay ポートレットと、それらが URL を構築する方法をご覧ください。

于 2013-03-01T16:04:50.353 に答える
1

[次へ] (または検索コンテナー内の他のページネーターのボタン) をクリックすると、ポートレットがレンダリングされます。search-container がポートレットの最初のページ (通常は portlet.xml に設定された view.jsp) にない場合、そこにリダイレクトされます (レンダリング フェーズのデフォルトの動作)。

Liferay 6.2 では、iteratorUrl を設定し、パラメーター 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>
于 2018-03-12T09:55:18.710 に答える