Thymeleafでラムダ式を使用する方法

Thymeleafでラムダ式を使用する方法

Thymeleafでは、直接ラムダ式を使用することはできませんが、Javaコード側でラムダ式を使用してモデルデータを操作し、その結果をThymeleafで表示することができます。
以下はその一例です。

まず、Java側でラムダ式を使用してデータを処理します。

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

@Controller
public class MyController {

  @GetMapping("/example")
  public String example(Model model) {
    List<String> items = Arrays.asList("apple", "banana", "cherry");
    List<String> filteredItems = items.stream()
      .filter(item -> item.startsWith("b"))
      .collect(Collectors.toList());
    model.addAttribute("items", filteredItems);
    return "example";
  }
}

次に、ThymeleafテンプレートでJava側から渡されたデータを表示します。

<!DOCTYPE html>
<html>
<head>
  <title>Example</title>
</head>
<body>
  <ul>
    <li th:each="item : ${items}" th:text="${item}">Item</li>
  </ul>
</body>
</html>

このコードでは、Java側でリストから特定の条件を満たすアイテムだけをフィルタリングし、その結果をThymeleafテンプレートで表示しています。