컨트롤러 관련해서 질문 드리고 싶은 것이 있습니다.
264
작성한 질문수 1
java 안에 @GetMapping("hello") 이라는 컨트롤러를 넣은 다음, template 안에 hello.html이라는 파일을 만들고 static 안에도 똑같은 hello.html 이라는 파일을 만들었습니다.
그 다음 localhost:8080/hello.html 을 검색했을 때 수업 내용대로라면 template안의 hello.html 파일이 출력돼야되는데 static 의 파일이 열렸습니다.
그래서 localhost:8080/hello 라고 검색해보니 이 때 templtate의 hello 파일이 열리더라고요.
따라서 localhost:8080/hello.html 이라고 웹브라우저에 치면 정적 파일이 열리고 localhost:8080/hello 이라 치면 template 파일이 열리는 것으로 봐서 웹 브라우저에 어떻게 검색하냐에 따라 파일이 열려지는게 달라지는 것 같습니다.
제가 수업에서 이해한건 뒤에 localhost:8080/hello.html 이라고 검색했을 때, 컨트롤러 먼저 찾고, 정적 파일을 찾는 우선순위 순으로 동작한다는 것이라서 이론대로라면 template 안에 hello.html이 먼저 열려야될 것 같은데 아니라 제가 이해한 것과 상충되어 이렇게 질문드립니다.
양질의 강의 감사합니다. 정말 잘 듣고 있어요
답변 2
2
제가 생각했을때는 GetMapping에 "hello"를 줄 것이 아니라 "hello.html"을 주셔야 질문자님이 말씀하신대로 동작하지 않을까 생각이 되네요. 영한님이 스프링 컨테이너에서 컨트롤러에 먼저 있나 살펴보고, 없으면 static 하위에 해당 파일명을 찾아본다고 하셨잖아요.
1. 질문자님이 말씀하신 것대로 한다면 hello를 쳤을때는 매핑되는 controller가 있으니 당연히 templates 안에 html이 실행됩니다.
2. hello.html을 쳤을 시 영한님이 설명해주신대로 controller에서 해당 매핑 값을 찾아보겠죠. 하지만 질문자님께서 "hello.html"이라는 매핑값을 넣어준적이 없으시니 당연히 찾지 못하는 것이고 그렇다면 static 하위에 hello.html을 찾는 것이겠죠.
3. 제가 조언드린대로 매핑값을 "hello.html"로 바꿔서 넣으신다면 localhost:8080/hello.html을 치신다면 controller에 매핑값을 먼저 찾기 때문에 templates의 hello.html을 찾아갈 것입니다.
결과적으로 질문자님은 동일한게 아닌 다른 값 (controller url 값은 hello, static 하위의 파일은 hello.html)을 넣으시고 실험하신 것이 되겠네요.
0
안녕하세요. 변지은님, 공식 서포터즈 OMG입니다.
개념의 혼동으로 많이 헷갈려 하시는거 같은데요.
java 안에 @GetMapping("hello") 이라는 컨트롤러를 넣은 다음,
이라고 말씀하셨는데 말씀하신 @GetMapping 없이 static 안에 hello.html이 존재한다면
localhost:8080/hello.html을 접근하면 hello.html의 내용이 출력됩니다.
반면 templates안에 있는 html 파일 내용을 출력하려면 서버 실행 후
@GetMapping("경로명")
return "파일명";
패턴이 되어야 규칙에 맞게 접근이 가능합니다.

또한 static은 정적인 파일을,
templates에는 템플릿 엔진 파일을 보관하여야 합니다.
감사합니다.
..
0
84
2
Unused property.....
0
104
2
project JDK is misconfigured
0
139
2
외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석
0
85
2
단위/통합 테스트 버전충돌 문제
0
92
2
❗️springboot 4.0.2 버전 aspectj dependency 설정❗️
0
236
1
왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?
0
105
2
윈도우 build test오류 질문
1
103
2
테스트 관련 공부에 대한 조언을 얻고 싶습니다
0
102
2
테스트 실행 시 에러 질문
0
296
1
name을 통한 비교와 객체를 통한 비교
0
77
1
빌드 후 libs 없음
1
132
1
윈도우 gradlew.bat 에러
0
170
1
@PostMapping("/members/new")가 동작하지 않습니다
0
91
1
java static class와 kotlin class
0
82
1
스프링 DB연결
0
129
1
소요 시간
0
89
2
ddl.sql에 빨간 밑줄
1
102
2
welcome page 에러
0
186
3
잘 모르겠습니다.
0
164
2
fail을 똑같이 쳤는데 오류가 발생해요
0
160
2
index.html Welcome page
0
127
1
프로젝트 gradle-groovy ?
0
382
1
테스트코드 메서드명 한글
0
206
2





