(1주차) 공부내용

* group -> 프로젝트를 대표하는 ID

* Artifact -> 프로젝트 고유명

* mustache -> 템플릿엔진?

* devtools -> 서버를 자동으로 재시작해줌

* 스프링 프로젝트 생성시 원격에서 데이터를 받아온 데이터들은

 -> 사용자디렉토리/유저이름/.m2에 위치해 있다.




---------------------------------------------------------------------------------------------------

@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello";
}
}


-->GetMapping에서 Return값으로 hello를 주는데 이때 관례상 hello의 확장자는 생략해도 된다. 이 파일은 templates폴더 밑의 html 파일을 가르킨다.
그렇다면 이 확장자를 인식하는 곳은 어디인가?

답: mustache template 기본 설정에 suffix가 .html로 되어 있어요. https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html 참고 spring.mustache.suffix=.html


---------------------------------------------------------------------------------------------------

@Controller
public class HelloController {

@GetMapping("/hello")
public String hello(String name, Model model){
System.out.println(" name = "+ name);
model.addAttribute("name",name);
return "hello";
}
}

http://localhost:8080/hello?name=wooyoung

--> wooyoung이라는 데이터를 hello메소드의 String name이 받게 되고 이를 model객체에 저장시킨다. 이는 templates/hello.html 의 <body>태그에서 {{name}}으로 하게 되면 브라우저에 출력된다. 이를 템플릿엔진이라 한다.



--------------------------------------------------------------------------------------------------
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(String name,int age, Model model){
System.out.println(" name = "+ name);
model.addAttribute("name",name);
model.addAttribute("age",age);
return "hello";
}
}

http://localhost:8080/hello?name=wooyoung&age=30
-->여기서 String name의 위치와 int age의 위치를 바꾸어도 인식되는데 그 원리는 무엇인가?

답: 변수 이름을 기반으로 값을 할당하는 방식이기 때문에 가능합니다.






--------------------------------------------------------------------------------------------------------------------------------------------


<input type="text" class="form-control" id="title" name="title" value="{{title}}" placeholder="제목"/>

여기서 name에 해당하는 부분 즉 title은 Question 클래스안의 setTitle로 자동 매칭된다.
그래서 컨트롤러에서 파라미터안에 Question question으로만 해도 자동으로 인식한다.

댓글

이 블로그의 인기 게시물

(18장) WebSocekt과 STOMP를 사용하여 메시징하기

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬