Browse Source

Переработка способа работы с ModelAndView, страницы заказчика и админа работают

Кинетик 5 years ago
parent
commit
ec5cb60ef7
2 changed files with 52 additions and 25 deletions
  1. 36 25
      src/controller/controller.java
  2. 16 0
      web/WEB-INF/views/adminIn.jsp

+ 36 - 25
src/controller/controller.java

@@ -24,45 +24,54 @@ import static EntitiesDao.ClientsDao.getClientMap;
  */
 @Controller
 public class controller {
+    ModelAndView mvAdmin = new ModelAndView();
+    ModelAndView mvClient = new ModelAndView();
+    ModelAndView mvStudent = new ModelAndView();
+    ModelAndView mvUsers = new ModelAndView();
+    {
+        //Блок инициализации всех view, которые используются при авторизации
+        mvAdmin.setViewName("adminBar");
+        mvClient.setViewName("ownerBar");
+        mvStudent.setViewName("studentBar");
+        mvUsers.setViewName("index");
+    }
     //Мапит запрос на вход на сайт, возвращает страницу index и грузит в нее объект, чтобы записывать данные в него
     @RequestMapping(value = "/", method = RequestMethod.GET)
     public ModelAndView main() {
-        ModelAndView modelAndView = new ModelAndView();
-        modelAndView.addObject("userJSP", new LoginUser());
-        modelAndView.setViewName("index");
-        return modelAndView;
+        mvUsers.addObject("userJSP", new LoginUser());
+        return mvUsers;
     }
     //Метод осуществляет проверку первого уровня аутентификации. Комментарий про мапу аналогичен след методу - надо подумать+посовещаться
     @RequestMapping(value = "/check-user")
     public ModelAndView checkUser(@ModelAttribute("userJSP") LoginUser user) {
-        ModelAndView modelAndView = new ModelAndView();
         HashMap<String, UsersEntity> userDict = UsersDao.getUserList();
         if(userDict.containsKey(user.getName())){
             if(userDict.get(user.getName()).getUserPassword().equals(user.getPassword())){
                 if(Objects.equals(user.getName(), "модератор")){
-                    modelAndView.setViewName("adminBar");
                     ArrayList<String> adminList = getAdminList();
                     //Нет смысла создавать LoginAdmin - поля те же, что и у заказчика
-                    modelAndView.addObject("adminLogin", new LoginClient());
-                    modelAndView.addObject("adminList", adminList);
+                    mvAdmin.addObject("adminLogin", new LoginClient());
+                    mvAdmin.addObject("adminList", adminList);
+                    mvUsers.addObject("message","");
+                    return mvAdmin;
                 } else if(Objects.equals(user.getName(), "заказчик")){
                     ArrayList<String> clientList = getClientList();
-                    modelAndView.addObject("clientLogin", new LoginClient());
-                    modelAndView.addObject("clientList", clientList);
-                    modelAndView.setViewName("ownerBar");
+                    mvClient.addObject("clientLogin", new LoginClient());
+                    mvClient.addObject("clientList", clientList);
+                    mvUsers.addObject("message","");
+                    return mvClient;
                 } else {
-                    modelAndView.setViewName("studentBar");
+                    mvUsers.addObject("message","");
+                    return mvStudent;
                 }
             } else {
-                modelAndView.setViewName("index");
-                modelAndView.addObject("message","Bad password");
+                mvUsers.addObject("message","Bad password");
             }
         } else {
-            modelAndView.setViewName("index");
-            modelAndView.addObject("message", "Bad login");
+            mvUsers.addObject("message", "Bad login");
         }
 
-        return modelAndView;
+        return mvUsers;
     }
     @RequestMapping(value = "/checkClient")
     public ModelAndView checkClient(@ModelAttribute("clientLogin") LoginClient client){
@@ -74,13 +83,14 @@ public class controller {
         if(clientAll.containsKey(client.getName())){
             if(clientAll.get(client.getName()).equals(client.getPassword())){
                 mv.setViewName("ownerIn");
+                mvClient.addObject("message","");
             } else {
-                mv.setViewName("ownerBar");
-                mv.addObject("message", "Bad password");
+                mvClient.addObject("message", "Bad password");
+                return mvClient;
             }
         } else {
-            mv.setViewName("ownerBar");
-            mv.addObject("message", "Bad login");
+            mvClient.addObject("message", "Bad login");
+            return mvClient;
         }
         return mv;
     }
@@ -91,13 +101,14 @@ public class controller {
         if(adminMap.containsKey(admin.getName())){
             if(adminMap.get(admin.getName()).equals(admin.getPassword())){
                 mv.setViewName("adminIn");
+                mvAdmin.addObject("message","");
             } else {
-                mv.setViewName("adminBar");
-                mv.addObject("message", "Bad password");
+                mvAdmin.addObject("message", "Bad password");
+                return mvAdmin;
             }
         } else {
-            mv.setViewName("adminBar");
-            mv.addObject("message", "Bad login");
+            mvAdmin.addObject("message", "Bad login");
+            return mvAdmin;
         }
         return mv;
     }

+ 16 - 0
web/WEB-INF/views/adminIn.jsp

@@ -0,0 +1,16 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: Кинетик
+  Date: 31.12.2016
+  Time: 23:20
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>Title</title>
+</head>
+<body>
+ <h1>Админ внутри</h1>
+</body>
+</html>