From 3d7a395b3723d283bc2e336265d1503b1b122693 Mon Sep 17 00:00:00 2001 From: Sergey Petunin Date: Fri, 20 Oct 2017 08:28:05 +0200 Subject: [PATCH] BAEL-1221: How Spring MVC Really Works (#2757) * BAEL-1221: How Spring MVC Really Works * BAEL-1221: Moved the project to the guest directory --- guest/spring-mvc/pom.xml | 59 +++++++++++++++++++ .../guest/springmvc/Spring5Application.java | 15 +++++ .../guest/springmvc/model/LoginData.java | 27 +++++++++ .../springmvc/web/InternalsController.java | 31 ++++++++++ .../src/main/resources/templates/failure.html | 10 ++++ .../src/main/resources/templates/login.html | 13 ++++ .../src/main/resources/templates/success.html | 10 ++++ 7 files changed, 165 insertions(+) create mode 100644 guest/spring-mvc/pom.xml create mode 100644 guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/Spring5Application.java create mode 100644 guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/model/LoginData.java create mode 100644 guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/web/InternalsController.java create mode 100644 guest/spring-mvc/src/main/resources/templates/failure.html create mode 100644 guest/spring-mvc/src/main/resources/templates/login.html create mode 100644 guest/spring-mvc/src/main/resources/templates/success.html diff --git a/guest/spring-mvc/pom.xml b/guest/spring-mvc/pom.xml new file mode 100644 index 0000000000..9974a76e8a --- /dev/null +++ b/guest/spring-mvc/pom.xml @@ -0,0 +1,59 @@ + + + 4.0.0 + + com.forketyfork.guest + spring-mvc + 0.0.1-SNAPSHOT + jar + + spring-mvc + Spring MVC sample project + + + org.springframework.boot + spring-boot-starter-parent + 2.0.0.M5 + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + false + + + + + + UTF-8 + UTF-8 + 1.8 + + + diff --git a/guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/Spring5Application.java b/guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/Spring5Application.java new file mode 100644 index 0000000000..d9af7c8ac9 --- /dev/null +++ b/guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/Spring5Application.java @@ -0,0 +1,15 @@ +package com.forketyfork.guest.springmvc; + +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.boot.SpringApplication; + +@SpringBootApplication +@ComponentScan(basePackages = {"com.forketyfork.guest.springmvc"}) +public class Spring5Application { + + public static void main(String[] args) { + SpringApplication.run(Spring5Application.class, args); + } + +} diff --git a/guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/model/LoginData.java b/guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/model/LoginData.java new file mode 100644 index 0000000000..a9140da4f9 --- /dev/null +++ b/guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/model/LoginData.java @@ -0,0 +1,27 @@ +package com.forketyfork.guest.springmvc.model; + +public class LoginData { + + private String login; + + private String password; + + public LoginData() { + } + + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/web/InternalsController.java b/guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/web/InternalsController.java new file mode 100644 index 0000000000..c39da4e3e5 --- /dev/null +++ b/guest/spring-mvc/src/main/java/com/forketyfork/guest/springmvc/web/InternalsController.java @@ -0,0 +1,31 @@ +package com.forketyfork.guest.springmvc.web; + +import com.forketyfork.guest.springmvc.model.LoginData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.servlet.ModelAndView; + +import java.util.Collections; + +@Controller +public class InternalsController { + + private static final String LOGIN = "jack"; + private static final String PASSWORD = "halloween"; + + @GetMapping("/") + public String hello() { + return "login"; + } + + @PostMapping("/login") + public ModelAndView login(LoginData loginData) { + if (LOGIN.equals(loginData.getLogin()) && PASSWORD.equals(loginData.getPassword())) { + return new ModelAndView("success", Collections.singletonMap("login", loginData.getLogin())); + } else { + return new ModelAndView("failure", Collections.singletonMap("login", loginData.getLogin())); + } + } + +} diff --git a/guest/spring-mvc/src/main/resources/templates/failure.html b/guest/spring-mvc/src/main/resources/templates/failure.html new file mode 100644 index 0000000000..f319652ede --- /dev/null +++ b/guest/spring-mvc/src/main/resources/templates/failure.html @@ -0,0 +1,10 @@ + + + + Login Failure + +

+ User with login not found, please try again. +

+ \ No newline at end of file diff --git a/guest/spring-mvc/src/main/resources/templates/login.html b/guest/spring-mvc/src/main/resources/templates/login.html new file mode 100644 index 0000000000..d031ac8825 --- /dev/null +++ b/guest/spring-mvc/src/main/resources/templates/login.html @@ -0,0 +1,13 @@ + + +Login Form + + +
+ + + +
+ + + \ No newline at end of file diff --git a/guest/spring-mvc/src/main/resources/templates/success.html b/guest/spring-mvc/src/main/resources/templates/success.html new file mode 100644 index 0000000000..6966385f2e --- /dev/null +++ b/guest/spring-mvc/src/main/resources/templates/success.html @@ -0,0 +1,10 @@ + + + + Login Success + +

+ Hello, ! +

+ \ No newline at end of file