質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

17302閲覧

Spring thymeleaf ラジオボタンの初期値設定方法

encho

総合スコア182

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Thymeleaf

Thymeleaf(タイムリーフ)とは、Java用のテンプレートエンジンで、特定のフレームワークに依存せず使用することが可能です。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2020/02/26 06:44

編集2020/02/26 06:50

Thymeleafでラジオボタンの初期値を設定したいです。
フィールドがもともと初期値を持っている時に、
(例えば既に男性として登録されている。)
ラジオボタンの初期値はどのように設定すれば良いでしょうか?
あまり性別を変更するという機会はないと思いますが、例なのでそこは無視してもらって結構です。
ご回答よろしくお願いいたします。

thymeleaf

1<tr> 2 <td><label for="gender">性別</label></td> 3 <td><input type="radio" name="gender" th:field="*{gender}" id="radioA" value="男性"/> 4 <label for="radioA">男性</label> 5 <input type="radio" name="gender" th:field="*{gender}" id="radioB" value="女性"/> 6 <label for="radioB">女性</label> 7 </td> 8</tr>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

input type="radio" と そのlabelをセットにして繰り返すと良いでしょうか。
(ただしこの2つを囲う何らかの要素が必要です)

※ getメソッドを省略するため、lombokを利用しています。

java

1import lombok.Getter; 2 3@Getter 4public class Gender { 5 private String id; 6 private String value; 7 private String label; 8 9 Gender(String id, String value, String label) { 10 this.id = id; 11 this.value = value; 12 this.label = label; 13 } 14 15 public static Gender of(String id, String value, String label) { 16 return new Gender(id, value, label); 17 } 18}

java

1import java.util.ArrayList; 2import java.util.List; 3 4import org.springframework.stereotype.Controller; 5import org.springframework.web.bind.annotation.GetMapping; 6import org.springframework.web.bind.annotation.RequestMapping; 7import org.springframework.web.servlet.ModelAndView; 8 9@Controller 10@RequestMapping("radio") 11public class RadioController { 12 @GetMapping("") 13 public ModelAndView display(ModelAndView mnv) { 14 15 List<Gender> genders = new ArrayList<Gender>() {{ 16 add(Gender.of("radioA", "male", "男性")); 17 add(Gender.of("radioB", "female", "女性")); 18 }}; 19 mnv.addObject("genders", genders); 20 21 String gender = "female"; 22 mnv.addObject("selectGender", gender); 23 24 mnv.setViewName("radio"); 25 return mnv; 26 } 27 28} 29

選択したラジオボタンの値を selectGender、性別の一覧を genders とした場合のThymeleafテンプレートは、

html

1<!DOCTYPE html> 2<html xmlns:th="http://www.thymeleaf.org"> 3<head> 4</head> 5<body> 6<form> 7 <div th:each="gender : ${genders}"> 8 <input type="radio" name="gender" th:id="${gender.id}" th:value="${gender.value}" th:checked="${gender.value == selectGender}"/> 9 <label th:for="${gender.id}" th:text="${gender.label}"></label> 10 </div> 11</form> 12</body> 13</html>

になります。labelのforと、radioのidと合致させるため、Genderクラスにidを設定してその内容を表示させています。

これらを囲む <div>は適宜他の要素に書き換えてください。

投稿2020/02/26 09:13

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

encho

2020/02/26 12:02

ご丁寧な回答ありがとうございます。 大変参考になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問