문제상황
- 위의 사진과 같이 controller가 작성되어있다.
postmna으로 dto랑 pageRequest를 넘겨주지 않고 요청을 보냈는데
52-53은 null이 출력되는게 아니라 아래와 같은 객체가 출력이 된다
null이 출력되지 않는이유
modelAttribute
- modelAttivute는 1)해당 객체를 일단 생성해놓고, 2)setter를 통해서 값을 주입시킨다. null값을 넘겨주면 1)만 실행되는것 같다. 그래서 객체 자체가 안들어온 것이 아니라 객체는 들어오는데 값이 null으로 뜬다
- pageRequest를 넘겨주지 않아도 미리 작성된 기본값이 넘어가도록 설정해주었기 때문이다
- 출력문을 보면 내 프로젝트에서 만든 pageRequest객체가 사용되고 있음을 알 수 있다.
- pageRequest는 AbstractPageRequest을 상속받고, AbstractPageRequest는 Pageable, Serializable을 상속받는다
궁금한 것
- spring의 pageRequest는 여러가지 메서드들이 있고 상속받는것 인터페이스도 있다.
이들을 모두 구현하지 않았는데도 사용자 정의 PageRequest는 잘 동작하였다.
필수적인 메서드가 무엇인지는 어떻게 알았는지 궁금하다