0

レンダリング フェーズがポートレットの最初のレンダリング フェーズであるかどうかを知るにはどうすればよいですか?

Liferay ですべての組織ユーザーのリストを表示し、テキスト フィールドに名前を書き込んで結果をフィルタリングできるようにしたいと考えています。

私の問題は、テキスト フィールドにユーザーの名前を挿入するときに発生します。その名前を持つユーザーを属性の一部で検索し、これらのユーザーのみを表示したいと考えています。結果の reasearch を actionRequest の属性として保存しているにもかかわらず、すべてのユーザーが再び表示される理由はわかりません。

actionRequest.setAttribute("usersList", users);

これらのユーザーのみを印刷してみてください。このアクション フェーズの後のレンダリング フェーズでは、自分の属性を取得して、設立されたユーザーのみをレンダリングしていません。

したがって、私の意図は、レンダー フェーズが最初のものなのか、それともアクション フェーズの後に来るのかを何らかの形で特定して、すべてのユーザーを印刷するか、actionRequest.setAttribute に保存されているリストからユーザーを印刷する条件を作成できるようにすることです。

どうもありがとうございました。お役に立てば幸いです。ところで、私は自分で調査を続けています。

4

3 に答える 3

1

リクエストの種類について少し詳しく説明しましょう

1) アクション リクエスト : これらは、投稿、フォームの送信、送信時の追加処理など、サーバーにデータを提供するために使用されます (データ ストレージ)

2) Render Requests : HTML パーツをペイントします。ここでは、データベースからデータを取得し、配置し、butify して、プレゼンテーション レイヤーからリクエスト属性に保存し、これを取得してペイントします。

レンダリング リクエストを直接使用する場合は、アクション URL の代わりにレンダリング URL を作成してください。たとえば、フォームの送信ボタンがある場合、HTML フォームのアクション属性には "" が必要です。これにより、レンダリング メソッドが直接呼び出されます。そして行動に移しません。

お役に立てれば。

――フェリックス

于 2012-06-04T07:09:27.580 に答える
0

ActionResponse.setRenderParameter を使用してみてください。レンダリング パラメーターは Render フェーズにあり、RenderRequest クラスの getParameter メソッドでアクセスできます。

于 2012-05-23T09:59:40.993 に答える
0

悪いニュースがあります。アクション リクエストはアクション フェーズを通してのみ存続するため、アクション リクエストからレンダリング リクエストにそのようなパラメーターを渡すことはできません。したがって、レンダリング フェーズからこれらの値を取得することはできません。

アクションからレンダリングに属性を渡す唯一の方法(私が知る限り)は、使用することです

actionResponse.setRenderParameter("name", "value")

値は文字列でなければならないことに注意してください。したがって、たとえばオブジェクトのリストを渡すことはできません。

あなたの選択肢は

1) レンダリング段階で実際の検索を行います。2) 結果をセッションに入れて、レンダリング段階でも利用できるようにします。

オプション 1 を使用する場合は、アクション フェーズを完全に忘れて、検索フォームをレンダリング フェーズ メソッドに投稿します。これは、私がこれらの状況で頻繁に行うことです。

于 2012-05-23T20:33:36.360 に答える