Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 58

Передача формы в сессию Spring MVC

27.03.2017, 20:35. Показов 1128. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Объясните пожалуйста, что я делаю не так.
Проверяю форму, посылаемую ajax'ом и сразу создаю объект
Хочу передать его в сессию, но не понимаю как
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package hello.controllers;
 
import hello.jdbc.UserJDBC;
import hello.model.JsonResponse;
import hello.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.support.SessionStatus;
 
import javax.servlet.http.HttpSession;
import java.sql.SQLException;
 
/**
 * Created by Кирилл on 05.01.2017.
 */
@Controller
@SessionAttributes(value = "user")
//@SessionAttributes(types = User.class)
public class UserController {
 
    private final UserJDBC userJDBC;
    private static User currentUser;
//    private String plainPassword = "admin";
//    private PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
    //String encodedPassword = passwordEncoder.encode(plainPassword);
    //  Assert.assertTrue(passwordEncoder.matches(plainPassword, encodedPassword));
    //  System.out.println(encodedPassword);
    @Autowired
    public UserController(UserJDBC userJDBC) {
        this.userJDBC = userJDBC;
    }
 
//    @PostMapping("/sign_in")
//    public String signInFormPost(@ModelAttribute("userSession") User user, Model model) throws SQLException {
//        model.addAttribute("user", user);
//        System.out.println(user);
//        if (userJDBC.checkAuth(user) == 1) {
//            user.setAuth(1);
//            return "game";
//        }
//        else return "result";
//    }
    @RequestMapping(value = "/sign_in",
            method = RequestMethod.POST,
            headers = {"Content-type=application/json"})
    @ResponseBody
    public JsonResponse signInFormPost(@RequestBody User user, HttpSession httpSession ) throws SQLException {
        if (userJDBC.checkAuth(user) == 1) {
//            redirect(user);
            httpSession.setAttribute("user", user );
            System.out.println("auth " + user);
            System.out.println("http " + httpSession.getAttribute("user"));
            return new JsonResponse("OK", "game");
        } else {
            return new JsonResponse("FAIL", "Неправильный логин или пароль");
        }
    }
 
//    @RequestMapping
//    @ModelAttribute("userSession")
//    public String redirect(User user) {
//        return "game";
//    }
 
    @RequestMapping(value = "/sign_up",
            method = RequestMethod.POST,
            headers = {"Content-type=application/json"})
    @ModelAttribute("user")
    @ResponseBody
    public JsonResponse signUpFormPost(@RequestBody User user) throws SQLException {
        if (userJDBC.insert(user) != 0) {
            System.out.println("logged: " + user);
            return new JsonResponse("OK", "Успешная регистрация" + user);
        } else {
            return new JsonResponse("FAIL", "Этот логин уже занят");
        }
    }
 
    @ModelAttribute("user")
    public User createUser(){
        return new User();
    }
 
    @GetMapping("/exit")
    public String exit(@ModelAttribute("userSession") User user, SessionStatus sessionStatus) throws SQLException {
        sessionStatus.setComplete();
        return "/";
    }
 
    @PostMapping("/sign_up")
    public String signUpFormPost(@ModelAttribute("userSession") User user, Model model) throws SQLException {
        model.addAttribute("user", user);
        System.out.println(user);
        if (checkFields(user)) {
            if (userJDBC.checkLogin(user) == 0)
                System.out.println(userJDBC.insert(user));
        }
//        jdbcTemplate = new JdbcTemplate(dataSource);
 
        return "result1";
    }
//    private String plainPassword = "admin";
//    private PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
//    public boolean checkFields (User user) {
//        return (user.getLogin().trim().length() != 0 && user.getPassword().trim().length() != 0 && checkPass(user));
//    }
//    public boolean checkPass (User user) {
//        return user.getPassword() == null ? user.getCheckPassword() == null : user.getPassword().equals(user.getCheckPassword());
//    }
 
}

Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package hello.controllers;
 
import hello.model.Game;
import hello.model.JsonResponse;
import hello.model.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
 
/**
 * Created by Кирилл on 17.01.2017.
 */
@Controller
@SessionAttributes(value = "user")
public class PageController {
 
    @GetMapping("/")
    public ModelAndView main(@ModelAttribute("user") User user) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("user", new User());
        if (user.getAuth() == 0) {
            modelAndView.setViewName("sign_in");
        } else {
            modelAndView.setViewName("game");
        }
        return modelAndView;
    }
 
    @ModelAttribute("user")
    public User createUser(){
        return new User();
    }
 
    @GetMapping("/game")
    public ModelAndView game(@ModelAttribute("user") User user) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("user", user);
        System.out.println("game: " + user);
        if (user.getAuth() == 0) {
            modelAndView.setViewName("sign_in");
        } else {
            modelAndView.setViewName("game");
        }
        return modelAndView;
    }
 
    @GetMapping("/sign_in")
    public String signInFormGet(Model model) {
        model.addAttribute("user", new User());
        return "sign_in";
    }
    @GetMapping("/sign_up")
    public ModelAndView reg(@ModelAttribute("user") User user) {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("sign_up");
        modelAndView.addObject("user", user);
        return modelAndView;
    }
    @GetMapping("/gfy")
    public String gfy() {
        return "gfy";
    }
 
    @GetMapping("/forgot_pass")
    public String forgot_pass(Model model) {
        model.addAttribute("user", new User());
        return "forgot_pass";
    }
 
    @GetMapping("/test_test")
    public String test_test(Model model) {
        model.addAttribute("user", new User());
        return "test_test";
    }
//
//    @RequestMapping(method=RequestMethod.GET, value="ajaxtest?{id}")
//    @ResponseBody
//    public Set<String> ajaxTest(@PathVariable long id) {
//        Set<String> records = new HashSet<String>();
//        records.add("Record #1");
//        records.add("Record #2");
//        System.out.println("kek");
//        System.out.println(id);
//        System.out.println(records);
////        System.out.println(user_id);
//        return records;
//    }
 
    @RequestMapping(value = "/ajaxtest",
            method = RequestMethod.POST,
            headers = {"Content-type=application/json"})
    @ResponseBody
    public JsonResponse ajaxtest(@RequestBody Game game) {
        System.out.println(game);
        return new JsonResponse("OK", "");
    }
 
}

Это контроллеры
Т.е. если авторизация проходит удачно, я присылаю статус 'ок', и адреc view - 'game', js'ом перехожу по нему.
Этот адрес ловлю GetMapping'ом, пытаюсь проверить аутентификацию, но объект соответственно пустой.
Понимаю, что он не добавляется в сессию. Собстна как это сделать? Я там что-то мутил с httpsession аттрибутами, знаю, что это не spring сессия, но она почему-то тоже не работает.
Структура проекта в приложении
Проясните пожалуйста!
Миниатюры
Передача формы в сессию Spring MVC  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.03.2017, 20:35
Ответы с готовыми решениями:

spring-mvc передача данных из контроллера в view
у меня возникла проблема. пробую писать жалкое подобие сайта на Java. и мне необходимо передавать данные между контроллером и вьюхой....

Получение данных из формы(Spring MVC)
Здравствуйте, есть такая проблема: Начал разбирать http://netbeans.org/kb/docs/web/quickstart-webapps-spring_ru.html. Как имя,...

Spring передача формы на контроллер
есть контроллер вида //---------страница блюд--------- @RequestMapping(&quot;/dishesall&quot;) public String...

1
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 58
28.03.2017, 20:20  [ТС]
Помогите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.03.2017, 20:20
Помогаю со студенческими работами здесь

Spring MVC. 404 ошибка при включении Spring Data JPA в проект
Добрый день. Есть простой шаблонный проект с использованием Spring MVC и Maven. С зависимостями Spring MVC проект собирается нормально и...

задания по spring core и spring mvc для новичков
Какие задания можно предложить новичкам для выполнения после знакомства их с spring core и mvc ?

Перевод проекта из Spring Maven в обычный Spring MVC
Здравствуйте. Подскажите, реально ли взять готовый проект, например -...

Jetty embedded + Spring MVC + Spring Security
Добрый день. По роду работы приходилось писать на JavaSE, в том числе и сложные клиент/серверные программы. Использовал Netty, Apache...

Spring MVC, Spring REST
Всем привет! Изучаю фреймворк Spring и возникло несколько вопросов в процессе, на которые не уверен однозначно, что до конца понимаю....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru