Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84

Валидация данных при заполнении формы

25.05.2015, 20:46. Показов 2075. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь сделать валидацию данных при заполнении формы.
Если какое-то поле пустое, то страница заново загружается с сообщением какое поле пустое.

Создаю класс для валидации

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
public class CreateDTOForm {
    @NotNull
    private String name;
    @NotNull
    private String description;
    @NotNull
    private String links;
    
    public CreateDTOForm() {
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getDescription() {
        return description;
    }
 
    public void setDescription(String description) {
        this.description = description;
    }
 
    public String getLinks() {
        return links;
    }
 
    public void setLinks(String links) {
        this.links = links;
    }
}

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
@Controller
public class CoursesController {
 
@RequestMapping(value = "/create", method = RequestMethod.GET)
    public String createCourse(Model model, HttpSession session,    HttpServletRequest request,UserService userService ,
            @Valid CreateDTOForm userDto, BindingResult result ) {
        
    model.addAttribute("eMail", session.getAttribute("eMail"));
 
User user = userService.read(session.getAttribute("name").toString());
 
            if (user.getRole().equals("Lector"))
                model.addAttribute("ActionCreate", "true");
            else
                model.addAttribute("ActionCreate", "false");
        return "create";
        }
    }
 
 
@RequestMapping(value = "/create", method = RequestMethod.POST, params = {
            "titleField", "descriptionField", "linksField" })
    public String createCoursePost(Model model, HttpSession session,HttpServletRequest request,
                         @Valid CreateDTOForm userDto, BindingResult result) {
 
        model.addAttribute("eMail", session.getAttribute("eMail"));
        String title = request.getParameter("titleField");
        String description = request.getParameter("descriptionField");
        String links = request.getParameter("linksField");
 
                model.addAttribute("EmptyTitle", "false"); 
        model.addAttribute("EmptyDescription", "false"); 
        model.addAttribute("EmptyLinks", "false"); 
        
        if (result.hasErrors()) {
             if (result.hasFieldErrors("name")){
                 model.addAttribute("EmptyTitle", "true");    
             }
             if (result.hasFieldErrors("description")){
                 model.addAttribute("EmptyDescription", "true");      
             }
             if (result.hasFieldErrors("links")){
                 model.addAttribute("EmptyLinks", "true");   
             }   
        }
                         
               
        CourseService courseService=new CourseService();
        Course course = new Course();
        course.setName(title);
        course.setDescription(description);
        course.setLinks(links);
        course.setOwner(session.getAttribute("eMail").toString());
        course = courseService.create(course );
 
        return "redirect:/courses.html"; 
    }
HTML5
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
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8"/>
    <link rel="stylesheet" type="text/css" href="./css/style.css"/>
  </head>
  <body>
    <div class="container">
      <header>
        <h1>
          Create Course
          <div class="logout">
            <span id="currentUserLogin">
              ${eMail}
            </span>
            <a href="logout.html">
              <i class="icon-off"></i>
            </a>
          </div>
        </h1>
      </header>
        <#if ActionCreate=="false"> 
      <div class="alert alert-error">
        <div>
          <strong>Okay, Houston, we've had a problem here.</strong>
        </div>
        <ul>
          <li>Action not allowed. Say again please.</li>
        </ul>
      </div>
       </#if>
       
      <#if EmptyTitle=="true">
      <div class="alert alert-error">
        <div>
          <strong>Okay, Houston, we've had a problem here.</strong>
        </div>
        <ul>
          <li>Name field is required.</li>
        </ul>
      </div>
       </#if>
       <#if EmptyDescription=="true">
      <div class="alert alert-error">
        <div>
          <strong>Okay, Houston, we've had a problem here.</strong>
        </div>
        <ul>
          <li>Description field is required.</li>
        </ul>
      </div>
       </#if>
        <#if EmptyLinks=="true">
      <div class="alert alert-error">
        <div>
          <strong>Okay, Houston, we've had a problem here.</strong>
        </div>
        <ul>
          <li>Links field is required.</li>
        </ul>
      </div>
       </#if>
       <#if ActionCreate=="true">
      <form class="form-horizontal" method=POST>
        <fieldset>
          <div class="control-group">
            <label class="control-label">Name</label>
            <div class="controls">
              <input id="titleField" name="titleField" class="span5" type="text"/>
            </div>
          </div>
          <div class="control-group">
            <label class="control-label">Description</label>
            <div class="controls">
              <textarea id="descriptionField" name="descriptionField" class="span5" rows="3"></textarea>
            </div>
          </div>
          <div class="control-group">
            <label class="control-label">Links</label>
            <div class="controls">
              <textarea id="linksField" name="linksField" class="span5" rows="3"></textarea>
            </div>
          </div>
          <div class="form-actions">
            <button id="createButton" name="createButton" class="btn btn-primary" type="submit">Create</button>
           
          </div>
        </fieldset>
      </form>
      </#if>
        <a class="btn" href="courses.html">Cancel</a>
    </div>
  </body>
</html>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.05.2015, 20:46
Ответы с готовыми решениями:

Блокирование данных в поле формы при заполнении через адресную строку
Добрый день. Есть следующая задача: При переходе по ссылке в адресной строке прописываю значение для полей формы. ...

Автоматическое заполнение данных в поле таблицы при заполнении формы по связанной таблице
Добрый день! Прошу помощи: сама в Access на уровне пользователя, но жизнь заставила.. Суть проблемы: надо прописать обработку, чтобы...

Проверка полей формы на заполненность, сверка паролей при заполнении формы
Решил замутить новую тему, а не продолжать старую, хотя это и следующий шаг в работе с формами ( предыдущая здесь...

7
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
25.05.2015, 20:59
goldenhawk, вы ищете благословления вашего кода или у вас проблема какая то?
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
26.05.2015, 07:10
Цитата Сообщение от goldenhawk Посмотреть сообщение
Если какое-то поле пустое, то страница заново загружается с сообщением какое поле пустое.
а не проще все это дело сделать с помощью обычного HTML?
ну на пример с помощью атрибута required
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84
26.05.2015, 18:28  [ТС]
Мне нужно такимм образом сделать? При помощи jsr 303?
0
 Аватар для bazJaz
36 / 33 / 21
Регистрация: 11.07.2014
Сообщений: 390
27.05.2015, 00:29
Цитата Сообщение от goldenhawk Посмотреть сообщение
Мне нужно такимм образом сделать? При помощи jsr 303?
рекомендую использовать javascript
0
15 / 15 / 3
Регистрация: 20.05.2014
Сообщений: 157
27.05.2015, 09:15
рекомендую использовать Ассемблер
0
0 / 0 / 0
Регистрация: 29.05.2015
Сообщений: 14
29.05.2015, 23:01
Можно сделать валидацию на UI (javaScript) . Но если выхотите именно в контроллере,то можно при получении параметра,проверять пустой ли он ,если он пустой то делать forward на ту же страницу и сетить атрибут errorMessage.
На Jsp странице ,пишите ${erroMessage} в нужном месте.
0
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 84
31.05.2015, 21:27  [ТС]
У меня freemarker, а не jsp. И надо сделать через валидацию через jsr 303.

result.hasErrors() всегда равно true . При заполнение и пустыми значениями , и нормальными значениями.

Еще изменил аннотацию на @NotEmpty. Не помогло.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2015, 21:27
Помогаю со студенческими работами здесь

Ошибка при заполнении формы
Есть база данных. Когда начинаю заполнять Форму-Абитуриент!не пойму почему выдает ошибку!подскажите или исправте) вылаживаю базу...

Потеря фокуса при заполнении формы
Доброе время суток! Нужна помощь. При заполнении в форме текстового поля 255 знаков курсор самопроизвольно уходит на другое любое поле...

Проверка при заполнении формы на переход
Как проверить на переход на другую страницу , тоесть выбросить предупреждение хочет ли человек покинуть эту страницу?)

При заполнении формы не видно текст
Всем здравия. Прошу помощи у знающих проблема в следующем, есть сайты, на них форма, ...не купленный скрипт,... всего 2 поля в ней...

При заполнении формы менять цвет в таблице?
Доброго времени суток!!! Подскажите, возможно ли сделать так, чтобы при заполнении определенного поля в форме в таблице менялся цвет...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 11.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 10.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 09.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 09.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 09.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru