From 9560588d414ff677446baadcb9b1b496e9aa80e3 Mon Sep 17 00:00:00 2001 From: Programmist73 <egor.eliseev.1986@mail.ru> Date: Sat, 22 Apr 2023 10:50:45 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B5=D1=80=D0=B2=D1=8B=D1=85=20HTM?= =?UTF-8?q?L=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/premium_store/WebConfiguration.java | 4 +- .../controller/GameClientController.java | 3 +- .../controller/NationController.java | 3 +- .../controller/controller/TankController.java | 3 +- .../controller/TankLevelController.java | 3 +- .../util/error/AdviceController.java | 3 +- .../src/main/resources/templates/clients.html | 10 ++++ .../src/main/resources/templates/default.html | 51 +++++++++++++++++++ .../src/main/resources/templates/levels.html | 10 ++++ .../src/main/resources/templates/nations.html | 10 ++++ .../src/main/resources/templates/tanks.html | 10 ++++ 11 files changed, 104 insertions(+), 6 deletions(-) create mode 100644 spring_online_calculator/src/main/resources/templates/clients.html create mode 100644 spring_online_calculator/src/main/resources/templates/default.html create mode 100644 spring_online_calculator/src/main/resources/templates/levels.html create mode 100644 spring_online_calculator/src/main/resources/templates/nations.html create mode 100644 spring_online_calculator/src/main/resources/templates/tanks.html diff --git a/spring_online_calculator/src/main/java/premium_store/WebConfiguration.java b/spring_online_calculator/src/main/java/premium_store/WebConfiguration.java index 6c4b7c4..fb88ede 100644 --- a/spring_online_calculator/src/main/java/premium_store/WebConfiguration.java +++ b/spring_online_calculator/src/main/java/premium_store/WebConfiguration.java @@ -6,7 +6,9 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; //отключение Cors фильтра - не позволяет организовавыть взаимодействие с разных доменов @Configuration -class WebConfiguration implements WebMvcConfigurer { +public class WebConfiguration implements WebMvcConfigurer { + public static final String REST_API = "/api"; + @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**").allowedMethods("*"); diff --git a/spring_online_calculator/src/main/java/premium_store/controller/controller/GameClientController.java b/spring_online_calculator/src/main/java/premium_store/controller/controller/GameClientController.java index 678ec7f..b9069ca 100644 --- a/spring_online_calculator/src/main/java/premium_store/controller/controller/GameClientController.java +++ b/spring_online_calculator/src/main/java/premium_store/controller/controller/GameClientController.java @@ -1,6 +1,7 @@ package premium_store.controller.controller; import org.springframework.web.bind.annotation.*; +import premium_store.WebConfiguration; import premium_store.controller.DTO.ClientDTO; import premium_store.service.GameClientService; import premium_store.service.TankService; @@ -8,7 +9,7 @@ import premium_store.service.TankService; import java.util.List; @RestController -@RequestMapping("/client") +@RequestMapping(WebConfiguration.REST_API + "/client") public class GameClientController { private final GameClientService gameClientService; private final TankService tankService; diff --git a/spring_online_calculator/src/main/java/premium_store/controller/controller/NationController.java b/spring_online_calculator/src/main/java/premium_store/controller/controller/NationController.java index b63204a..3f79a22 100644 --- a/spring_online_calculator/src/main/java/premium_store/controller/controller/NationController.java +++ b/spring_online_calculator/src/main/java/premium_store/controller/controller/NationController.java @@ -1,6 +1,7 @@ package premium_store.controller.controller; import org.springframework.web.bind.annotation.*; +import premium_store.WebConfiguration; import premium_store.controller.DTO.FullNationDTO; import premium_store.service.NationService; import premium_store.service.TankService; @@ -12,7 +13,7 @@ import java.util.List; //так же здесь прописываем вызовы методов CRUD в привязке к URL @RestController @CrossOrigin -@RequestMapping("/nation") +@RequestMapping(WebConfiguration.REST_API + "/nation") public class NationController { private final NationService nationService; private final TankService tankService; diff --git a/spring_online_calculator/src/main/java/premium_store/controller/controller/TankController.java b/spring_online_calculator/src/main/java/premium_store/controller/controller/TankController.java index cb14abe..00029fe 100644 --- a/spring_online_calculator/src/main/java/premium_store/controller/controller/TankController.java +++ b/spring_online_calculator/src/main/java/premium_store/controller/controller/TankController.java @@ -1,6 +1,7 @@ package premium_store.controller.controller; import org.springframework.web.bind.annotation.*; +import premium_store.WebConfiguration; import premium_store.controller.DTO.TankDTO; import premium_store.service.NationService; import premium_store.service.TankLevelService; @@ -10,7 +11,7 @@ import java.util.List; @RestController @CrossOrigin -@RequestMapping("/tank") +@RequestMapping(WebConfiguration.REST_API + "/tank") public class TankController { private final TankService tankService; private final TankLevelService tankLevelService; diff --git a/spring_online_calculator/src/main/java/premium_store/controller/controller/TankLevelController.java b/spring_online_calculator/src/main/java/premium_store/controller/controller/TankLevelController.java index 5e7987a..ec56ae8 100644 --- a/spring_online_calculator/src/main/java/premium_store/controller/controller/TankLevelController.java +++ b/spring_online_calculator/src/main/java/premium_store/controller/controller/TankLevelController.java @@ -1,6 +1,7 @@ package premium_store.controller.controller; import org.springframework.web.bind.annotation.*; +import premium_store.WebConfiguration; import premium_store.controller.DTO.LevelDTO; import premium_store.service.TankLevelService; @@ -10,7 +11,7 @@ import java.util.List; //здесь происходит внедрение зависимости нашего сервиса //так же здесь прописываем вызовы методов CRUD в привязке к URL @RestController -@RequestMapping("/level") +@RequestMapping(WebConfiguration.REST_API + "/level") public class TankLevelController { private final TankLevelService tankLevelService; diff --git a/spring_online_calculator/src/main/java/premium_store/util/error/AdviceController.java b/spring_online_calculator/src/main/java/premium_store/util/error/AdviceController.java index 18577c3..df96bfc 100644 --- a/spring_online_calculator/src/main/java/premium_store/util/error/AdviceController.java +++ b/spring_online_calculator/src/main/java/premium_store/util/error/AdviceController.java @@ -6,6 +6,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestController; import premium_store.service.exception.ClientNotFoundException; import premium_store.service.exception.LevelNotFoundException; import premium_store.service.exception.NationNotFoundException; @@ -15,7 +16,7 @@ import premium_store.util.validation.ValidationException; import java.util.stream.Collectors; //контроллер для обработки разнообразных ошибок при работе с запросами к БД -@ControllerAdvice +@ControllerAdvice(annotations = RestController.class) public class AdviceController { //метод handleException будет вызываться при возникновении исключений типа LevelNotFoundException и т. д. @ExceptionHandler({ diff --git a/spring_online_calculator/src/main/resources/templates/clients.html b/spring_online_calculator/src/main/resources/templates/clients.html new file mode 100644 index 0000000..566549b --- /dev/null +++ b/spring_online_calculator/src/main/resources/templates/clients.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Title</title> +</head> +<body> + +</body> +</html> \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/default.html b/spring_online_calculator/src/main/resources/templates/default.html new file mode 100644 index 0000000..941bbb8 --- /dev/null +++ b/spring_online_calculator/src/main/resources/templates/default.html @@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html lang="ru" + xmlns:th="http://www.thymeleaf.org" + xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> +<head> + <meta charset="UTF-8"/> + <title>Премиум магазин</title> + <meta name="viewport" content="width=device-width, initial-scale=1"/> + <link rel="icon" href="/favicon.svg"> + <script type="text/javascript" src="/webjars/bootstrap/5.1.3/js/bootstrap.bundle.min.js"></script> + <link rel="stylesheet" href="/webjars/bootstrap/5.1.3/css/bootstrap.min.css"/> + <link rel="stylesheet" href="/webjars/font-awesome/6.1.0/css/all.min.css"/> + <link rel="stylesheet" href="/css/style.css"/> +</head> +<body> + <nav class="navbar navbar-expand-lg navbar-light bg-light"> + <div class="container-fluid"> + <a class="navbar-brand" href="/"> + <i class="fa-solid fa-font-awesome"></i> + Премиум магазин + </a> + <button class="navbar-toggler" type="button" + data-bs-toggle="collapse" data-bs-target="#navbarNav" + aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> + <span class="navbar-toggler-icon"></span> + </button> + <div class="collapse navbar-collapse" id="navbarNav"> + <ul class="navbar-nav" th:with="activeLink=${#request.requestURI}"> + <a class="nav-link" href="/levels" + th:classappend="${#strings.equals(activeLink, '/levels')} ? 'active' : ''">Обзор уровней + </a> + <a class="nav-link" href="/tanks" + th:classappend="${#strings.equals(activeLink, '/tanks')} ? 'active' : ''">Обзор танков + </a> + <a class="nav-link" href="/nations" + th:classappend="${#strings.equals(activeLink, '/nations')} ? 'active' : ''">Обзор наций + </a> + <a class="nav-link" href="/clients" + th:classappend="${#strings.equals(activeLink, '/clients')} ? 'active' : ''">Обзор клиентов + </a> + </ul> + </div> + </div> + </nav> +<div class="container-fluid"> + <div class="container container-padding" layout:fragment="content"></div> +</div> +</body> +<th:block layout:fragment="scripts"> +</th:block> +</html> \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/levels.html b/spring_online_calculator/src/main/resources/templates/levels.html new file mode 100644 index 0000000..566549b --- /dev/null +++ b/spring_online_calculator/src/main/resources/templates/levels.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Title</title> +</head> +<body> + +</body> +</html> \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/nations.html b/spring_online_calculator/src/main/resources/templates/nations.html new file mode 100644 index 0000000..566549b --- /dev/null +++ b/spring_online_calculator/src/main/resources/templates/nations.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Title</title> +</head> +<body> + +</body> +</html> \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/tanks.html b/spring_online_calculator/src/main/resources/templates/tanks.html new file mode 100644 index 0000000..566549b --- /dev/null +++ b/spring_online_calculator/src/main/resources/templates/tanks.html @@ -0,0 +1,10 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <title>Title</title> +</head> +<body> + +</body> +</html> \ No newline at end of file