이번에는 HTML의 Form을 사용해서 클라이언트에서 서버로 데이터를 전송해봅니다.
주로 회원 가입, 상품 주문 등에서 사용하는 방식입니다.
POST HTML Form을 하려면 ****HTML Form이 필요합니다.
src/main/webapp/basic/hello-form.html 생성합니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/request-param" method="post">
username: <input type="text" name="username"/>
age: <input type="text" name="age"/>
<button type="submit">전송</button>
</form>
</body>
</html>
<aside> ❗ 그런데 접근할 때 http://localhost:8080/basic/hello-form.html에 접근을 해야합니다.
왜 뒤에 확장자를 붙이나요?
지금까지는 스프링 컨트롤러를 통해서 화면을 호출했습니다.
스프링은 컨트롤러는 확장자가 없어도 됩니다.
그런데 이번에는 스프링 컨트롤러를 거치지 않고, hello-form.html이라는 파일을 직접 불러오기 때문에 확장자까지 필요합니다.
어떻게 /basic/을 통해서 바로 접근할 수 있나요?
webapp이 루트입니다. 자동으로 루트로 잡히는 이유는 기본 규약이기 때문입니다.
templates
스프링이 계속 버전이 올라가면서 view 엔진이 JSP 대신 thymeleaf로 바뀌었습니다.
templates폴더는 thymeleaf의 파일들을 두는 곳입니다.
static
static 폴더는 content들을 두는 곳입니다. 보통 css나 js를 두곤합니다./static
을 이용해서 웹에서 호출할 수도 있습니다.
스프링레거시에서는 src/main/webapp 폴더를 이용했습니다.
그러나 부트에서는 jar로 패키징이 되기때문에 스프링레거시처럼 webapp 폴더를 이용하고 싶다면 패키징 방법을 war로 변경해야합니다.
그래서 처음에 war로 설정을 했습니다.
</aside>
실행하고 해당 url로 웹 브라우저로 들어가면 아래처럼 나옵니다.