지난 시간에 우리는 어노테이션을 이용하면서 컨트롤러 클래스의 구현 방식을 바꾸어보았다.
여기서 알 수 있는 점은 이제 해당 컨트롤러 클래스는 더 이상 컨트롤러로써의 역할을 하는 것이 아니며, 실질적인 역할은 컨트롤러 클래스 안에 구현되어있는 함수가 수행한다는 것이다.
따라서 해당 컨트롤러는 컨트롤러를 담고 있는 더 큰 의미의 컨트롤러를 의미하게 되며, 이를 표현하기 위해 컨트롤러의 이름을 특정 페이지에만 해당되는 이름이 아닌 RootController 또는 HomeController 등으로 바꾸어 주는 것이 좋다.
실질적인 컨트롤러의 역할을 하는 함수는 아래와 같이 구현하여 기존 컨트롤러의 역할을 수행할 수 있다.
이와 마찬가지로 공지사항 페이지에 대한 컨트롤러인 DetailController와 ListController 클래스 또한 하나의 컨트롤러 클래스에서 함수를 통해 그 역할을 수행하도록 수정해줄 수 있을 것이다.
이제 servlet-context.xml 파일에 남아있는 흔적들을 모두 지워주기 위해 파일을 열고 아래에 해당하는 구문을 삭제한다.
이 상태에서 페이지를 실행시켜보면 첫 페이지는 잘 출력되나 공지사항 페이지에서 오류가 나는 것을 확인할 수 있다.
이는 단순히 header.jsp 파일에 있는 경로가 잘못 설정되어 있기 때문이므로 해당 부분을 수정해줌으로써 간단하게 해결할 수 있다.
이후 페이지를 새로고침 한 뒤, 다시 공지사항 페이지를 출력해보면 정상적으로 작동하는 것을 확인할 수 있다.
우리가 작성한 NoticeController를 보면 @RequestMapping 어노테이션에 들어가는 문구가 반복적이라는 것을 알 수 있다.
위와 같이 공통적인 경로가 반복될 경우 다음과 같은 방식으로도 매핑할 수 있다.
'🍃 Spring, Spring Boot > 스프링 프레임워크 기초' 카테고리의 다른 글
[Java / Spring] 21. QueryString 입력(@RequestParam) (0) | 2022.04.26 |
---|---|
[Java / Spring] 20. 문서 출력방법 (0) | 2022.04.25 |
[Java / Spring] 18. Annotation 활용하기 (0) | 2022.04.23 |
[Java / Spring] 17. 스프링 설정파일(dispatcher-servlet.xml) 분리하기 (0) | 2022.04.23 |
[Java / Spring] 16. 데이터 서비스 클래스 준비 및 객체 사용하기 (0) | 2022.04.23 |