JpaRepository <T、I>を使用してjspでページ分割することは可能ですか?

java-user:

春のブーツは初めてです。

でJSPのテーブルをページ分割することは可能ですか、という質問がJpaRepository<T, I>あります。インターネットを2日間検索してきましたが、見つかりませんでした。クエリの結果は主にThymeleafに関するものでしたが、私はthymeleafを使用したくありません私は中にページ付けする方法を知っているJSP使用しJdbctemplateますが、そのために、私は、クエリと手動でページ数を書くことをしました。私はすでにスプリングブートとJSPコードを記述しました。

EmployeeRepository:

public interface EmployeeRepository extends JpaRepository<Emp, Integer> {}

EmployeeController:

@Controller
public class EmployeeController {

    @Autowired
    private EmployeeRepository repo;

    @GetMapping("/")
    public String showPaginate(Model m, @RequestParam(defaultValue = "0") int page) {
        m.addAttribute("data", repo.findAll(new PageRequest(page, 4)));
        return "index";
    }
}

index.jsp

<table border="2" width="70%" cellpadding="3"
        class="table">
        <thead class="thead-dark">
            <tr align="center">
                <th scope="col">Id</th>
                <th scope="col">Name</th>
                <th scope="col">Designation</th>
                <th scope="col">Edit</th>
                <th scope="col">Delete</th>
            </tr>
        </thead>
        <c:forEach var="emp" items="${list}">
            <tbody>
                <tr align="center">
                    <td>${emp.id}</td>
                    <td>${emp.name}</td>
                    <td>${emp.designation}</td>
                    <td><a href="editemp/${emp.id}" class="btn btn-outline-info">Edit</a></td>
                    <td><a href="deleteemp/${emp.id}" class="btn btn-outline-danger">Delete</a></td>
                </tr>
            </tbody>
        </c:forEach>
    </table>
<hr>
<!-- Pagination code will come here -->
サイバトロニアン:

はい、可能です。しかし、最初にPagingAndSortingRepository<T, I>リポジトリとコントローラーのインターフェースを作成する必要があります。あなたの場合、私にはわかりません。ページ、サイズ、要素、STCの属性を追加する必要があります。これによりPagingAndSortingRepository<T, I>、JSPページが知るようになります。ページの属性など、${page}ページ番号を表示するよう使用できます私はこのリポジトリを参照しています

従業員リポジトリ:

public interface EmployeeRepository extends PagingAndSortingRepository<Employee, Integer> {}

PagingAndSortingRepository<T, I>は、findAll(page)ページデータに従ってオブジェクトを渡すメソッドがあります。

従業員Dao:

@Service
public class EmpDao {

    @Autowired
    private EmpRepository repo;

    public Page<Emp> getPage(Pageable pageable){
        return repo.findAll(pageable);
    }

ページに従ってオブジェクトが必要な場合、Page<T>ページはオブジェクトのリストのサブリストであるため、インターフェイスを使用する必要があります。含まれるリスト全体での位置に関する情報を取得できます。

@Controller
public class EmpController {

    @Autowired
    private EmpDao dao;

    @RequestMapping("/viewemp")
    public String viewemp(Model m, Pageable pageable){
        Page<Emp> pages=dao.getPage(pageable);
        m.addAttribute("number", pages.getNumber());
        m.addAttribute("totalPages", pages.getTotalPages());
        m.addAttribute("totalElements", pages.getTotalElements());
        m.addAttribute("size", pages.getSize());
        m.addAttribute("data",pages.getContent());
        return "viewemp";
    }
}

Pageableページネーション情報の抽象インタフェースであり、

  1. getNumber()-現在のスライスの番号を返します。常に非負です。
  2. getTotalPages()-総ページ数を返します。
  3. getTotalElements()-要素の合計量を返します。
  4. getSize()-スライスのサイズを返します。
  5. getContent()-ページのコンテンツをリストとして返します。

あなたがすでにデータを格納していると仮定したJSPページ:

これをあなたのテーブル本体に書いてください。 <tbody>

<tbody id="myTable">
    <c:choose>
        <c:when test="${data.size() > 0 }">
            <c:forEach var="emp" items="${data}">
                <tr align="center">
                    <td>${emp.id}</td>
                    <td>${emp.name}</td>
                    <td>${emp.designation}</td>
                    <td><a href="editemp/${emp.id}" class="btn btn-outline-info">Edit</a></td>
                    <td><a href="deleteemp/${emp.id}" class="btn btn-outline-danger">Delete</a></td>
                </tr>
            </c:forEach>
        </c:when>
        <c:otherwise>
            <tr align="center">
                <td colspan="5">No Users available</td>
            </tr>
        </c:otherwise>
    </c:choose>

    <c:if test="${data.size() > 0 }">
        <div class="panel-footer">
            Showing ${number+1} of ${size+1} of ${totalElements}
            <ul class="pagination">
                <c:forEach begin="0" end="${totalPages-1}" var="page">
                    <li class="page-item">
                        <a href="viewemp?page=${page}&size=${size}" class="page-link">${page+1}</a>
                    </li>
                </c:forEach>
            </ul>
        </div>
    </c:if>

</tbody>

あなたは行ってもいいです。

それが役に立てば幸い..

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JpaSpecificationExecutor <T>がJpaRepository <T、I>のように機能しないようです

分類Dev

JpaRepositoryとCRUDRepositoryfindAll

分類Dev

それはJpaRepositoryを使用して春データJPAで「TRUNCATE」を使用することは可能ですか?または標準DELETEALLより効果的な方法()?

分類Dev

JpaRepositoryで@EmbeddedIdを使用する

分類Dev

I JpaRepositoryことができますがで何かをする疲れfindByIdで行を見つけることができません、

分類Dev

JpaRepositoryを使用したSpringBootでページング可能な問題

分類Dev

共通のJpaRepositoryインターフェースを作成することは可能ですか?

分類Dev

JpaRepository <User>を直接注入する

分類Dev

JpaRepositoryを保護する方法

分類Dev

data.table結合にプレフィックスiを使用してスペース付きの列名を使用することは可能ですか?

分類Dev

JavaでJpaRepositoryを使用して新しい行を挿入する

分類Dev

spock で @Autowired JpaRepository をテストする

分類Dev

-tなしでssh経由でscreenを使用することは可能ですか?

分類Dev

Swift:[<SomeType <T>?]を拡張して[<T>?]を生成することは可能ですか?

分類Dev

T [A、B]として使用できるジェネリック型T [A <:C [U]、B <:C [U]、U]を作成することは可能ですか?

分類Dev

JpaRepositoryでキャッシュする

分類Dev

(Spring / JpaRepository)BaseEntityRepositoryからSubEntityRepositoryへのJpaRepositoryの継承メソッド

分類Dev

SpringはJpaRepositoryを見つけることができません

分類Dev

JpaRepositoryを使用したDBの更新と削除

分類Dev

T-SQLで行を相互に区別してグループ化することは可能ですか?

分類Dev

Comparator <T>を使用してreverseOrder()メソッドを実装することは可能ですか?

分類Dev

fabricjs i-textを使用して3つ以上のスタイルを追加することは可能ですか?

分類Dev

JpaRepositoryのBeanを作成する方法

分類Dev

私はのfindAllを呼び出す実装クラスイム(例<T>)で、私のapplication.AndでJpaRepositoryを使用していますが、その私に、適切な応答を与えていません

分類Dev

JpaRepositoryのsaveAllに更新と挿入の両方を混在させることはできますか

分類Dev

T-SQLを使用してデータベースから部分的なdacpacを作成することは可能ですか?

分類Dev

Spring JpaRepositoryでJPQLを使用してグループ内の最新のレコードを選択するにはどうすればよいですか?

分類Dev

Spring JpaRepositoryでJPQLを使用してグループ内の最新のレコードを選択するにはどうすればよいですか?

分類Dev

エンティティをDBから削除してから、この値をJpaRepositoryに返すことはできますか?

Related 関連記事

  1. 1

    JpaSpecificationExecutor <T>がJpaRepository <T、I>のように機能しないようです

  2. 2

    JpaRepositoryとCRUDRepositoryfindAll

  3. 3

    それはJpaRepositoryを使用して春データJPAで「TRUNCATE」を使用することは可能ですか?または標準DELETEALLより効果的な方法()?

  4. 4

    JpaRepositoryで@EmbeddedIdを使用する

  5. 5

    I JpaRepositoryことができますがで何かをする疲れfindByIdで行を見つけることができません、

  6. 6

    JpaRepositoryを使用したSpringBootでページング可能な問題

  7. 7

    共通のJpaRepositoryインターフェースを作成することは可能ですか?

  8. 8

    JpaRepository <User>を直接注入する

  9. 9

    JpaRepositoryを保護する方法

  10. 10

    data.table結合にプレフィックスiを使用してスペース付きの列名を使用することは可能ですか?

  11. 11

    JavaでJpaRepositoryを使用して新しい行を挿入する

  12. 12

    spock で @Autowired JpaRepository をテストする

  13. 13

    -tなしでssh経由でscreenを使用することは可能ですか?

  14. 14

    Swift:[<SomeType <T>?]を拡張して[<T>?]を生成することは可能ですか?

  15. 15

    T [A、B]として使用できるジェネリック型T [A <:C [U]、B <:C [U]、U]を作成することは可能ですか?

  16. 16

    JpaRepositoryでキャッシュする

  17. 17

    (Spring / JpaRepository)BaseEntityRepositoryからSubEntityRepositoryへのJpaRepositoryの継承メソッド

  18. 18

    SpringはJpaRepositoryを見つけることができません

  19. 19

    JpaRepositoryを使用したDBの更新と削除

  20. 20

    T-SQLで行を相互に区別してグループ化することは可能ですか?

  21. 21

    Comparator <T>を使用してreverseOrder()メソッドを実装することは可能ですか?

  22. 22

    fabricjs i-textを使用して3つ以上のスタイルを追加することは可能ですか?

  23. 23

    JpaRepositoryのBeanを作成する方法

  24. 24

    私はのfindAllを呼び出す実装クラスイム(例<T>)で、私のapplication.AndでJpaRepositoryを使用していますが、その私に、適切な応答を与えていません

  25. 25

    JpaRepositoryのsaveAllに更新と挿入の両方を混在させることはできますか

  26. 26

    T-SQLを使用してデータベースから部分的なdacpacを作成することは可能ですか?

  27. 27

    Spring JpaRepositoryでJPQLを使用してグループ内の最新のレコードを選択するにはどうすればよいですか?

  28. 28

    Spring JpaRepositoryでJPQLを使用してグループ内の最新のレコードを選択するにはどうすればよいですか?

  29. 29

    エンティティをDBから削除してから、この値をJpaRepositoryに返すことはできますか?

ホットタグ

アーカイブ