0

Displaytagを使用してデータセットを表示するSpringMVCベースのJSPページがあります。ページのフォームで、ユーザーは2つのチェックボックスのいずれか、または両方を選択して、表示するデータのサブセットを表示できます(「O」、「Q」、または「B」の両方を設定)。

フォームと表示は最初のページで正常に機能しますが、表の下部にあるDisplaytagページ付けリンクに不正な形式のURLが含まれています。その結果、ユーザーがリンクをクリックして別のページを表示すると、チェックボックスがリセットされ、「Q」だけを表示したい場合でも、ユーザーには常に「OとQの両方」が表示されます。

DisplaytagがこれらのURLを生成するために使用するフォームにこのパラメーターを追加しました(Displaytagのドキュメントによる)が、生成されたURLの値は変更されません。

フォームエントリ(type = "o"):

<input type="hidden" id="type" name="type" value="o">

ページネーションURL(両方ともtype = "b"):

http://localhost:8080/searchmain.html?d-443691-p=3&endDate=&_stateQuote=on&type=b&stateOrder=true

誰かがこれに光を当てることができますか?

URLパラメータがどのように生成されるか知っている人はいますか?

4

1 に答える 1

0

答えが見つかりました-ここに投稿してください。他の人の助けになることを願っています。

Displaytag は、RESPONSE ではなく、最初の HTTP REQUEST のパラメーターを使用して、ページネーション用の URL パラメーターを生成します。そのため、更新されたパラメータが戻ってくることに依存している場合 (この場合のように)、ページングによって誤った結果が生成されます。この場合、ページ上の 2 つのチェックボックスを使用して非表示の「タイプ」フィールドを更新し、それが応答で返されました。残念ながら、ページング URL は REQUEST からの「type」フィールドで更新されましたが、これには、新しく更新された値「O」ではなく、以前の未更新の値 (例「B」) が含まれていました。

URL で見つけたい値が何であれ、渡す HTTP REQUEST にある必要があります。RESPONSE から何かを利用することは期待できません。

なるほど、見つけるのに時間がかかった。

実際のコードを見たい場合は、Displaytagソースの TableTag.java の次のルーチンにあります。

protected void initHref(RequestHelper requestHelper)
于 2012-12-04T14:45:52.970 に答える