본문 바로가기
✨ Back-end/Spring-Boot

[Spring] 스프링 프로젝트 생성 방법 및 데이터 전달

by 환풍 2023. 3. 13.
728x90
반응형

스프링에서 웹 개발을 하려면 프로젝트 생성을 이클립스와 또 다르게 만들어줘야한다.

우클릭 New -> Spring Starter Project를 선택한다.

 

Frequently에서 위 4개는 필수이다.

 

Spring Boot DevTools 

 => 스프링을 수정하고 다시 Run안시키고 페이지를 F5누르면 바로바로 변화되는걸 볼 수있게 하는거다.

 

반드시 위와 같은 패키지에서 클래스 파일을 만들어주자.

 

프로젝트를 최초로 실행시킬 때에는 컨트롤 + F11이 아니라, 지정해서 해줘야한다.

 

위의 사진에서 @GetMapping 어노테이션 뒤에 경로를 지정해주었다. Spring은 메소드를 사용해서 컨트롤러 역할을 한다.

이것은 이클립스에서 사용했던 if문과 동일한 역할을 한다. 서블릿에서 사용했던 page가 return 역할을 가르킨다.

 

return "board_list"를 이용해 templates 하위에 있는 board_list.html파일로 찾아가면 해당 페이지가 열리게 된다.

 '글쓰기 페이지로 이동' uri를 클릭하면 board/boardWirte 경로로 이동할 수 있는데,

 

서블릿에서 *.do 와 같이 받은것 처럼 Spring에서는 어노테이션을 RequestMapping을 사용해서 경로를 잡아줄 수 있다.

이후 해당 경로에 있는 boardWrite GetMapping으로 찾아가 페이지를 열어준다.

 

위와 같이 페이지 경로를 이용해 html이 잘 열린것을 확인할 수 있다.

그렇다면 form태그를 이용해서 input태그는 어떤식으로 데이터를 전달할 수 있을까?

이클립스에서 사용했던 서블릿에서는 request.getParameter로 데이터를 받아올 수 있었다.

하지만 스프링에는 request를 정의한 객체가 없으므로 억지로 만들어주지 않는 이상 사용할 수 없다.

 

방법1

이렇게 매개변수를 적어주고, 똑같이 데이터를 출력하면 넘어온다.

 

위와 같이 콘솔창에 데이터가 입력된 것을 확인할 수 있다. (페이지는 아직 넘기지 않았다.)

 

방법2

VO를 만들어 클래스를 만들어 준 후에, toString() 메소드를 만들어 준다.

 

 

위와 같이 BoardVO 객체를 매개변수에 넣고, model 프래임워크를 불러온다.

 

BoardController

board_write.html

thymeleaf를 쓸 것이기 때문에 <html> 을 지우고 <html xmlns:th="http://www.thymeleaf.org"> 을 복사 붙여넣기해준다.

그러면 th:text를 사용할 수 있다.

위와 같이 title, content, age 값을 모두 넘겼지만 age값만 받아왔고 , 데이터를 줄때 name은 따로 만들어준 것도 나타난다.

즉, 데이터를 안받아와도 빈 박스만 표시할 뿐, 정상적으로 쓰냐 안쓰냐는 개발자 마음이다.

 

그렇다면 boardVO객체를 사용해서 데이터를 전달해보자. 얘는 따로 전달하지 않고 그냥 출력만 했다.

BoardVO boardVO 를 커맨드 객체라고 하는데, 얘는 데이터를 넘기지 않겠다고 말해도 자동으로 넘어온다.

 

위 화면과 같이 출력된 데이터를 잘 확인할 수 있다.

728x90
반응형

댓글