Thymeleafでラジオボタン(radio)のcheckedを設定

Thymeleafでラジオボタン(radio)のcheckedを設定

以下は、Thymeleafでラジオボタンのcheckedを設定するためのサンプルコードです。
コントローラの処理も含めています。

HTML (Thymeleafテンプレート)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <title>ラジオボタンの例</title>
</head>
<body>
  <form action="#" th:action="@{/submit}" th:object="${form}" method="post">
    <div>
      <label>
        <input type="radio" name="option" value="1" 
               th:field="*{selectedOption}" 
               th:checked="${form.selectedOption == '1'}" /> オプション1
      </label>
    </div>
    <div>
      <label>
        <input type="radio" name="option" value="2" 
               th:field="*{selectedOption}" 
               th:checked="${form.selectedOption == '2'}" /> オプション2
      </label>
    </div>
    <div>
      <button type="submit">送信</button>
    </div>
  </form>
</body>
</html>

コントローラ (SpringBoot)

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

@Controller
public class RadioController {

  @GetMapping("/form")
  public String showForm(Model model) {
    FormData formData = new FormData();
    formData.setSelectedOption("1"); // デフォルトでオプション1を選択
    model.addAttribute("form", formData);
    return "form";
  }

  @PostMapping("/submit")
  public String submitForm(@ModelAttribute("form") FormData formData, Model model) {
    model.addAttribute("selectedOption", formData.getSelectedOption());
    return "result";
  }
}

フォームデータクラス

public class FormData {
  private String selectedOption;

  public String getSelectedOption() {
    return selectedOption;
  }

  public void setSelectedOption(String selectedOption) {
    this.selectedOption = selectedOption;
  }
}

このコードでは、Thymeleafテンプレートでラジオボタンのchecked属性を設定しています。
th:checkedを使って、選択されたオプションがデフォルトでチェックされるようにしています。
コントローラでは、FormDataクラスを使って選択されたオプションの値を処理しています。