💨

Springbootで動的なimageをhtmlに表示したい。

2024/12/15に公開

はじめに

個人開発中にぶつかった問題についてまとめます。
メモです。

想定読者

SpringBoot初学者。

開発環境

SpringBoot
Java
Thymeleaf

メインコンテンツ

動的なimageが表示できない。

<img th:src="@{/img/${employee.image}}" />
  • 上記のコードで画像を表示することができませんでした。

コードの説明

  • EmployeeServiceクラスのshowDetailメソッドで従業員詳細情報を呼び出しています。
  • リクエストスコープに、従業員情報を与えています。
# EmployeeController.java 

    @RequestMapping("/showDetail")
    public String showDetail(String id, Model model, UpdateEmployeeForm form){
        Integer num = Integer.parseInt(id);
        Employee employee = employeeService.showDetail(num);
        model.addAttribute("employee", employee);
        return "employee/detail";
    }
  • 下記のコードでは表示されませんでした。
# detail.html

<img th:src="@{/img/${employee.image}}" />

解決方法

  • imageNameを作成し、そこに employee.imageを代入してから値を渡すことで正しく表示できました。
# detail.html

<img th:src="@{/img/{imageName}(imageName=${employee.image})}" />

感想

  • 記事でなかなか見つけられなかったのでまとめました。
    よかったら参考にしてください。

Discussion