인프런 커뮤니티 질문&답변
스프링부트에서 @Controller가 안 먹히는 것 같아요 ㅠㅠ
작성
·
683
0
@Controller가 인식을 안 하는 것 같아요(404)



application.properties에는
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp 이렇게 해놨고
view 단에서 <li class="nav-item"><a class="nav-link" href="/login">Login</a></li>를 타고
login.jsp로 페이지 이동하려하는데 도저히가 안 먹네요 ㅠㅠ
build.gradle에는 implementation 'org.springframework.boot:spring-boot-starter-web'
살려주세요 ㅠㅠㅠㅠ
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. dnlsemtmf님, 문제의 원인을 파악하기 위해 여러 측면에서 고려해볼 필요가 있어 보입니다.
Controller 인식 문제:
@Controller가 인식되지 않는다면, 먼저 스프링 부트 애플리케이션의 컴포넌트 스캔 범위를 확인해야 합니다.LoginController가 있는 패키지가 스프링 부트의 메인 애플리케이션이 위치한 패키지 또는 그 하위 패키지에 위치해 있는지 확인해주세요. 만약 그렇지 않다면,@ComponentScan을 사용하여 스캔 범위를 조정할 수 있습니다.View Resolver 설정:
application.properties에서 설정한spring.mvc.view.prefix와spring.mvc.view.suffix설정이 적절한지 확인해보세요. 이 설정은 Controller에서 반환하는 뷰 이름을 실제 JSP 파일 경로로 매핑하는데 사용됩니다. 예를 들어,LoginController에서"client/login"을 반환했다면, 실제 뷰 경로는/WEB-INF/views/client/login.jsp가 됩니다. 해당 경로에 JSP 파일이 올바르게 위치해 있는지 확인해주세요.서버 설정 및 JSP 지원: 스프링 부트는 내장된 톰캣 서버를 사용하여 애플리케이션을 실행합니다. JSP를 사용하기 위해서는 추가적인 설정이 필요한데요,
build.gradle에spring-boot-starter-tomcat에 대한 의존성이 포함되어 있으며providedRuntime 'org.apache.tomcat.embed:tomcat-embed-jasper'가 추가되어 있는지 확인해야 합니다.디렉토리 구조:
/WEB-INF/views/경로에 JSP 파일들이 올바르게 위치해 있는지 다시 한번 확인해보세요. 때때로 디렉토리 경로가 잘못 설정되어 있거나, IDE에서 리소스 디렉토리로 인식하지 못하는 경우가 있습니다.실행 환경 검토: 로컬 개발 환경에서
localhost:8080/login으로 접근 시 404 에러가 발생한다면, 애플리케이션을 실행하는 어플리케이션 서버(Tomcat 등)의 로그를 확인해 보세요. 로그에는 부트스트랩 과정이나 요청 처리에서의 오류 상세 정보가 포함될 수 있습니다.
위 사항들을 점검해보시고 문제가 지속된다면, 컨트롤러나 애플리케이션 설정, 그리고 프로젝트 구조를 다시 한번 세심하게 검토해보시기 바랍니다.




