【SpringBoot】Formクラスのフィールドを値オブジェクトにする
真面目に調べたことがなかったのでメモ
@RestController public class Api { @RequestMapping("/") public String index(Form form) { return "Greetings from Spring Boot! " + form.name.value; } // privateでもok private static class Form { private NameForm name; // フォームではセッターで渡す public void setName(NameForm nameForm) { this.name = nameForm; } } // privateでもok private static class NameForm { private final String value; // 値オブジェクトへはコンストラクタで渡す public NameForm(String value) { this.value = value; } } }
ポイント
Formクラス
- メソッド名をAPIのキー名と同じにする
- セッターへは値オブジェクトを渡す
値オブジェクト (NameForm)
- 値はコンストラクタで渡す
その他
Formや値オブジェクトはプライベートクラスにしてもOK