강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

dnlsemtmf님의 프로필 이미지
dnlsemtmf

작성한 질문수

스프링부트에서 @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님, 문제의 원인을 파악하기 위해 여러 측면에서 고려해볼 필요가 있어 보입니다.

  1. Controller 인식 문제: @Controller가 인식되지 않는다면, 먼저 스프링 부트 애플리케이션의 컴포넌트 스캔 범위를 확인해야 합니다. LoginController가 있는 패키지가 스프링 부트의 메인 애플리케이션이 위치한 패키지 또는 그 하위 패키지에 위치해 있는지 확인해주세요. 만약 그렇지 않다면, @ComponentScan을 사용하여 스캔 범위를 조정할 수 있습니다.

  2. View Resolver 설정: application.properties에서 설정한 spring.mvc.view.prefixspring.mvc.view.suffix 설정이 적절한지 확인해보세요. 이 설정은 Controller에서 반환하는 뷰 이름을 실제 JSP 파일 경로로 매핑하는데 사용됩니다. 예를 들어, LoginController에서 "client/login"을 반환했다면, 실제 뷰 경로는 /WEB-INF/views/client/login.jsp가 됩니다. 해당 경로에 JSP 파일이 올바르게 위치해 있는지 확인해주세요.

  3. 서버 설정 및 JSP 지원: 스프링 부트는 내장된 톰캣 서버를 사용하여 애플리케이션을 실행합니다. JSP를 사용하기 위해서는 추가적인 설정이 필요한데요, build.gradlespring-boot-starter-tomcat에 대한 의존성이 포함되어 있으며 providedRuntime 'org.apache.tomcat.embed:tomcat-embed-jasper'가 추가되어 있는지 확인해야 합니다.

  4. 디렉토리 구조: /WEB-INF/views/ 경로에 JSP 파일들이 올바르게 위치해 있는지 다시 한번 확인해보세요. 때때로 디렉토리 경로가 잘못 설정되어 있거나, IDE에서 리소스 디렉토리로 인식하지 못하는 경우가 있습니다.

  5. 실행 환경 검토: 로컬 개발 환경에서 localhost:8080/login으로 접근 시 404 에러가 발생한다면, 애플리케이션을 실행하는 어플리케이션 서버(Tomcat 등)의 로그를 확인해 보세요. 로그에는 부트스트랩 과정이나 요청 처리에서의 오류 상세 정보가 포함될 수 있습니다.

위 사항들을 점검해보시고 문제가 지속된다면, 컨트롤러나 애플리케이션 설정, 그리고 프로젝트 구조를 다시 한번 세심하게 검토해보시기 바랍니다.

dnlsemtmf님의 프로필 이미지
dnlsemtmf

작성한 질문수

질문하기