public static Handler createCompany = ctx -> {
String name = ctx.formParam("name");
String workers = ctx.formParam("workers");
// Добавляем валидатор для каждого поля
Validator<String> nameValidator = ctx.formParamAsClass("name", String.class)
// Добавляем проверку, что имя не должно быть пустым
.check(it -> !it.isEmpty(), "Имя не должно быть пустым");
// Можно добавить несколько проверок
Validator<String> workersValidator = ctx.formParamAsClass("workers", String.class)
.check(it -> StringUtils.isNumeric(it), "Количество работников должно содержать только цифры")
.check(it -> !it.isEmpty(), "Количество работников не должно быть пустым");
// Валидируем данные из форм и собираем все ошибки валидации в словарь
// Если ошибок нет, словарь будет пустой
Map<String, List<ValidationError<? extends Object>>> errors = JavalinValidation.collectErrors(
nameValidator,
workersValidator,
);
// Если данные не валидные
if (!errors.isEmpty()) {
// Устанавливаем код ответа
ctx.status(422);
// Передаем ошибки и данные компании
ctx.attribute("errors", errors);
Company invalidCompany = new Company(name, workers);
ctx.attribute("company", invalidCompany);
ctx.render("companies/new.html");
return;
}
Company company = new Company(name, workers);
company.save();
ctx.redirect("/companies");
};
Вам ответят команда поддержки Хекслета или другие студенты.
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт
Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу