타임리프 추가하기
build.gradle의 dependencies에 아래 코드 추가 후 gradle 새로고침
// thymeleaf
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect'
기능 - Method - URL - 반환
로그인 웹페이지 - GET - /login - login-form.html 페이지
로그인 처리 - POST - /login - login-result.html 페이지
src - main - resources - static 안에 작성
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello Login Form</title>
</head>
<body>
<form action="login" method="POST">
<div>
아이디: <input name="id" type="text">
</div>
<div>
비밀번호: <input name="password" type="password">
</div>
<button>로그인</button>
</form>
<div>
* 아이디는 영어만 가능 <br>
* 비밀번호 Hint: 아이디 <br>
</div>
</body>
</html>
src - main - resources - templates안에 작성
th : 타임리프 문법
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Hello Login Result</title>
</head>
<body>
Hello Login by Spring MVC!
<br><br>
<div th:if = "${loginId != null}"
th:text="|로그인 아이디: ${loginId}|" />
<div th:unless = "${loginId != null}"
th:text="|로그인에 실패했습니다. 아이디와 패스워드를 다시 확인해 주세요.|" />
</body>
</html>
package com.example.springmvc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
public class LoginController {
// Login 을 위한 HTML 파일 내려주기
@GetMapping("/login")
public String loginPage() {
return "redirect:/login-form.html";
}
// Login 처리
@PostMapping("/login")
public String loginProcess(
@RequestParam String id,
@RequestParam String password,
Model model
) {
if (id.equals(password)) {
model.addAttribute("loginId", id);
}
return "login-result";
}
}
package com.example.springmvc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringmvcApplication {
public static void main(String[] args) {
SpringApplication.run(SpringmvcApplication.class, args);
}
}