С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
88 / 86 / 55
Регистрация: 14.11.2015
Сообщений: 1,099

[Spring MVC] Login Bean

06.03.2017, 21:24. Показов 1515. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В одном из туториалов по Spring MVC авторы используют LoginBean со следующим содержанием:
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
package com.spring.controller;
 
public class LoginBean {
 
    private String userName;
    private String password;
 
    public String getUserName() {
        return userName;
    }
 
    public void setUserName(String userName) {
        this.userName = userName;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
}
Потом, соотвественно, используют его в обработчике формы
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    @RequestMapping(method = RequestMethod.POST)
    public String submit(Model model, @ModelAttribute("loginBean") LoginBean loginBean) {
        if (loginBean != null && loginBean.getUserName() != null & loginBean.getPassword() != null) {
            if (loginBean.getUserName().equals("chandra") && loginBean.getPassword().equals("chandra123")) {
                model.addAttribute("msg", "welcome" + loginBean.getUserName());
                return "success";
            } else {
                model.addAttribute("error", "Invalid Details");
                return "login";
            }
        } else {
            model.addAttribute("error", "Please enter Details");
            return "login";
        }
    }
}
Обязательно ли делать отдельный бин, если у меня уже есть модель User:
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
public class User {
    @Id
    @GeneratedValue
    @Column(name = "id")
    private int id;
 
    @Column(name = "email")
    private String email;
 
    @Column(name = "full_name")
    private String fullName;
 
    @Column(name = "username")
    private String username;
 
    @Column(name = "password")
    private String password;
 
    @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
    @JoinTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"),
            inverseJoinColumns = @JoinColumn(name = "role_id"))
    private Set<Role> roles = new HashSet<>();
 
    ...
}
И еще, правильно ли я понимаю, отдельный бин используют чтобы не писать все параметры через @RequestParam?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2017, 21:24
Ответы с готовыми решениями:

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

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

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

4
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
06.03.2017, 21:50
Лучший ответ Сообщение было отмечено Artmal как решение

Решение

Цитата Сообщение от Artmal Посмотреть сообщение
Обязательно ли делать отдельный бин, если у меня уже есть модель User
слать entity в во вьюху не самая удачная идея, для этого придуманы data transfer object (dto) это как раз и есть ваш логинбин, только назвали вы его иначе.

Пример с логин бином не самый удачный, т.к за авторизацию у вас будет отвечать spring security.
Более очевидно использование dto станет когда будете регистрировать пользователя. Например в сущности User у вас нет поля confirmPassword. + входящие данные в контролер хорошо бы провалидировать ну там, что имя пользователя, емайл подходящей длины, формата и т.д. для маппинга этих условий опять же dto хорошо подходит... https://www.mkyong.com/spring-... d-example/
1
88 / 86 / 55
Регистрация: 14.11.2015
Сообщений: 1,099
07.03.2017, 11:52  [ТС]
Почитал про dto. Как я понял, это класс, который будет хранить только состояние объекта и не будет хранить никакого поведения(та же entity, только без hibernate'а).

Возник вопрос, а где хранить эти dto? В том туториале что я смотрел, Login Bean кидали прямо в пакет controller, правильно ли это?

Как правильно называть эти dto? Что-то вроде UserDTO?
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
07.03.2017, 12:49
Artmal,
1
88 / 86 / 55
Регистрация: 14.11.2015
Сообщений: 1,099
08.03.2017, 09:53  [ТС]
reisal78, не до конца понимаю эту схему. Почему dto входит в приложение, а предметная область(домен) - нет? Что в таком случае подразумевают под приложением?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.03.2017, 09:53
Помогаю со студенческими работами здесь

Spring + Hibernate | Error creating bean with name 'sessionFactory'
Относительно недавно начал изучение Java. При создании веб-приложения при помощи Sprng'а и Hibirnate выскакивает ошибка, хотя делал по...

Spring и Map с String на типы других Bean's
Здравствуйте! В один момент у меня отвалилось кучи тестов, причём коммитов не было, просто бах и сотни тестов не проходят Копался я в...

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

Cannot resolve bean 'injectBean' .Spring - XML model validation
package com.spring.hierarchical; public class SimpleTarget { private String val; public String getVal() { ...

Как создать синг-тон bean в Spring или есть другие решения?
задача - создать компонент для Spring - который представляет из себя: - (статический?) метод распознания изображения (точнее теста и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru