可能なのですが、Lombokのアノテーションで適切ではない使い方をしているようです。
@Data
を使っているときは、フィールドのget/setメソッドを生成しますが、フィールドのアクセス修飾子は @FieldDefauls
で宣言している、フィールドのアクセス修飾子が書かれていないときにアクセス修飾子を生成するものですが、フィールド(nameやid)にpublicが書かれているために無視されます。
参考までに、Controllerの実装をきれいに書くならば以下の方が良いでしょう。
java
1import org.springframework.stereotype.Controller;
2import org.springframework.web.bind.annotation.GetMapping;
3import org.springframework.web.bind.annotation.RequestMapping;
4
5import lombok.Data;
6
7@Controller
8@RequestMapping("/custom")
9public class CustomModelController {
10
11 @GetMapping("display")
12 public String display(SampleDto dto) {
13
14 String name = dto.getName();
15
16 return "index";
17 }
18
19 @Data
20 public static class SampleDto {
21 private String name;
22 private String id;
23 }
24}
ないしは、DTOのアクセス修飾子をアノテーションで記載するなら
java
1public class CustomModelController {
2
3........
4
5 @Data @FieldDefaults(level=AccessLevel.PRIVATE)
6 public static class SampleDto {
7 String name;
8 String id;
9 }
10}
で十分です。