0

現在、Liferay のポートレットを開発しています (Spring MVC フレームワークを使用)。ここで、ポートレットに表示するリストにページングを実装するために、displaytag ライブラリを使用しました。

私の問題は、現在のリクエストが displaytag ライブラリのページング コントロールによって開始されたかどうかを検出する必要があることです。私が見つけたのは、ページングを行うときに、表示されている現在のページを示す "d-4157739-p=2" のようなパラメーターが URL に追加されることです。だから私はできる

int isPagingRequest = PortletRequestUtils.getIntParameter(request, "d-1332617-p", -1);

..そして、isPagingRequest (ブール値に変更できます) に値がある場合、リクエストは displaytag ページングによって開始されています。ただし、これは非常に悪いコーディングであるため、避けたいと思います。さらに、「d」と「p」の間の数はさまざまであり、それを検出するのは非常に困難です。

現在のリクエストがページングによって引き起こされたかどうかを検出する方法を誰かが提案していますか??

どうもありがとう

4

3 に答える 3

1

Displaytag は、テーブルのテーブル名 (id または uid 要素 - 有効なチェックサム (d と-(parameter)). Check it out. TableTagParameters には、パラメーターに必要な定数も含まれているため、これら 2 つを組み合わせて、適切な変数キーを取得し、要求から取得できます。

于 2009-04-22T00:39:26.750 に答える
0

1 つのオプションは、requestURI属性の値に独自のパラメーターを追加することです。たとえば、次のように追加できます。

requestURI="mylistsource.action?ispage=true"

mylistsource.action は、最初にリストを生成するサーバー アクションです。

サーバー上で「ispage」パラメータを探すことができます。

于 2009-04-21T21:03:06.133 に答える
0

文字列パラメーター = 新しい ParamEncoder(tableId).encodeParameterName(TableTagParameters.PARAMETER_PAGE))。. 上記はあなたの問題を解決し、@ MetroidFan2002 が言っていたことも要約します。

于 2011-03-31T17:16:18.147 に答える