struts,javaでページングの実装をしました。
1ページ、2件づつでデーターを表示しています。
現在→ 1 2 3
これを下記の実装に変える
実現したい事→ もっと見る
上記のようにjspでもっと見るに表示し
もっと見る画面 を押下後、追加で2件ずつ表示されていく実装に変えたいです。
下記コードをかえてJavaだけで実装できるのか、javaScriptなどで実装する必要があるのか
初心者の為、悩んでいます。また足してできるならどのようにしたらよいか
ヒントを頂ければ幸いです。
/** * ページ送りメソッド * * @param form * @throws SQLException */ public int[] countAll(ViewForm form) throws SQLException { ResultSet rs = null; // OrdersBean update = null; PreparedStatement ps = null; DBConnecter conn = new DBConnecter(); String count = "select count(*) as record from projects p " + "INNER JOIN orders o ON o.project_code = p.project_code " + "INNER JOIN received_orders r ON r.project_code= p.project_code " + "INNER JOIN companies oc ON oc.company_id = o.company_id " + "INNER JOIN companies rc ON rc.company_id = r.company_id where 1 = 1"; StringBuilder query = new StringBuilder(count); search(query);// 検索 ps = conn.connect().prepareStatement(query.toString()); set(ps);// LIKE文にバインドする // sqlを送る rs = ps.executeQuery(); // 取ってきたrecordがレコード数なのでそれを変数recordに代入する int record = 0; if (rs.next()) { record = rs.getInt("record"); } int p = (record / MAX_VIEWS) + (record % MAX_VIEWS == 0 ? 0 : 1); int[] pages = new int[p]; for (int i = 0; i < pages.length; ++i) { pages[i] = i + 1; } // 最後にレコード数を返す return pages; }
//Jsp
<%-- Actionから受け取ったpages配列の要素をpgという名前で扱い、要素数分処理を繰り返す --%>
<html:form action="/view">
<logic:iterate id="pg" name="pages">
<%-- EL式を使って要素pgを展開し、同時に押されたボタンの番号(value)を pという名前で(name)ActionFormのpにセットする --%> <button name="p" value="${pg}">${pg}</button> </logic:iterate> <html:link action="/member">もっと見る</html:link>