2016-04-06 2 views
0

私はStruts2フレームワークを使用するいくつかのアプリケーションで作業しています。私は必要なすべてのデータをList<Object>にロードしてJSPファイルにロードします。ブートストラップフレームワークを使用してデータテーブルに反復表示されます。Struts2 + Bootstrap datatable:すべてのデータを読み込まずにページを設定する方法

これは問題なく動作しますが、1.000.000(100万)のレコードがある場合と同様に、結果のHTMLに完全なデータをロードせずにこれを行う方法を知っています。

私は、すべてのレコードがJSPからの結果HTML出力にあり、最初の10個のみが必要で、ページング負荷(jQuery?)が必要な場合は残りのデータセットを必要としません。

+0

Nalipuの回答から:http://legacy.datatables.net/usage/server-side私は勉強しなければならないが、これはうまくいくかもしれない:) –

答えて

1

まあ、これはいくつかの良いaproachですが、私は(privatedとして宣言してからゲッターにyのセッターを生成)変数ストラットするrequest.getParameterを変換する必要があります。

FROM:https://datatables.net/development/server-side/jsp

編集:これは、アクションで

https://datatables.net/manual/server-side#Sent-parameters

のように:リンクではなく、私たちからのparamsを使用する必要があり、DataTableのから古い値を持ついくつかのrequest.gPを持っている

次に、ajaxによって呼び出されるactionMethodで、dbにクエリを行い、データセットを返します。

<script> 
$(document).ready(function() { 
    $('#datatable').dataTable({ 
     "iDisplayLength": 5, 
     "processing": true, 
     "serverSide": true, 
     "ajax": "paginateTableAction" 
    }); 
    }); 
</script> 
:私はStruts2の+のDataTableでの作業フル改ページを持っているとき、私はこの回答を編集します

、DataTableの

は(datatables.netからドキュメントを参照してください)necesaryあるいくつかの構成があります

+0

この回答は便利ですが、データ型からアクション(最も一般的な場合)に値を選択するbussinesロジックが必要です:http://stackoverflow.com/質問/ 11617479 /指定された行からデータテーブルへのアクションメソッド –

+0

最後にデータテーブルのドキュメントには答えがあります:http://datatables.net/examples/server_side/select_rows.html –

1

最良の方法は、などの追加のパラメータは、例えば&エンドを開始しているあなたのDAOのメソッドを作成することです:あなたのコントローラで

getCustomers(int start,int end){ 
// get all customers 
// sublist the result and get the data from start index to end index 
} 

あなたは、ほぼ同じことをやると、あなたがstartendを与えますPOSTまたはGET要求

@RequestMapping(value = "/sublistedCustomers", method = RequestMethod.GET) 
public String getSublistedCustomers(@RequestParam("start") final int start,@RequestParam("end") final int end){ 
model.addAttribute("cutomersResult",yourDAO.getCustomers(start,end)); 
} 

によるパラメータは、今、あなたのJSPファイルに顧客レコードの一部を持っており、それがどのようにDISに決定するのはあなた次第よこのサブリストの結果を再生します。エンリケ・サン・マルティンさんのコメントに追加するには

+1

このコードはStruts2では動作せず、問題は解決しない。 –

+0

Anotationsのトリックは、ActionSupportクラスでアクションを拡張して行うことができ、preparedStatementでクエリーを実行します(SwArqが言うすべての問題ので、コードからコピーすることができます。 ) –

1

http://legacy.datatables.net/usage/server-side

どれでも良い例がiDisplayStartiDisplayLengthパラメータを使用し、datatable()のコース"bServerSide": true財産すべきです。

ここにブログの記事へのリンク:Using jQuery Datatable with Struts2 action class using Ajax

+0

その良いスタート、thxと私の質問へのエディションのヘルプ私はあなたの答えを投票する唯一の問題は、ブートストラップdatatable(レガシーではない)の新しいバージョンを使用するので、私は*スタート文字列はもはや渡されません、パラメータの名前のための私の答えを参照してくださいが、明らかによりunderstables :)、とにかくあなたの時間のために私はこの問題を解決するのを助けるために:) –

+0

私はあなたがコードを適応させることができると確信しています新しいバージョンのために。 –

+0

うまく、その作業、filterindとその別の主題を発注するが、同じ考えです:) –

関連する問題