0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

データベースを検索した結果の件数でHTMLを切り替える方法

Posted at

はじめに

データベースの検索結果がある場合と無い場合(0件)でHTMLを切り替えたいなーと思い、
検索結果の件数によってHTMLを切り替える方法を調べました。

HTMLを切り替える方法

JAVA Spring BootとThymeleafを使用してpageableから要素数を取得することでHTMLタグを切り替えられそう。
という事で、.getNumberOfElements() メソッドを使用して検索結果の件数を取得してHTMLタグを切り替えてみました。

コード抜粋

index.html
<div th:if="${pageable.getNumberOfElements()}>0">
    <P>要素あり</p>
</div>

<div th:if="${pageable.getNumberOfElements()}==0">
    <P>要素なし</p>
</div>                                                     
Controller.java
package com.example.demo;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.List;

@Controller
public class DemoController {

    @GetMapping("/")
    public String index(Model model) {
        // 例としてPageableオブジェクトを作成
        int pageSize = 10;
        int currentPage = 0;

        // ページ数を取得するためにPageableを使用
        PageRequest pageRequest = PageRequest.of(currentPage, pageSize);

        // ページングされたデータ(ダミーデータを使用)
        List<String> data = List.of("Item 1", "Item 2", "Item 3", "Item 4", "Item 5");

        // ページングのためのPageオブジェクトを作成
        Page<String> page = new PageImpl<>(data, pageRequest, data.size());

        // Pageableとページ内データのサイズをテンプレートに渡す
        model.addAttribute("pageable", page);

        return "index";
    }
}

結果

検索結果の件数が0件の場合と、1件でもある場合で切り替える事が出来ます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?